gapit 0.6.3__tar.gz → 0.6.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. {gapit-0.6.3 → gapit-0.6.4}/CHANGELOG.md +12 -0
  2. {gapit-0.6.3 → gapit-0.6.4}/CITATION.cff +1 -1
  3. {gapit-0.6.3 → gapit-0.6.4}/PKG-INFO +1 -1
  4. {gapit-0.6.3 → gapit-0.6.4}/docs/agents.md +1 -1
  5. {gapit-0.6.3 → gapit-0.6.4}/docs/agents.zh.md +1 -1
  6. {gapit-0.6.3 → gapit-0.6.4}/docs/databases.md +1 -1
  7. {gapit-0.6.3 → gapit-0.6.4}/docs/databases.zh.md +1 -1
  8. {gapit-0.6.3 → gapit-0.6.4}/docs/datadir.md +2 -2
  9. {gapit-0.6.3 → gapit-0.6.4}/docs/datadir.zh.md +2 -2
  10. {gapit-0.6.3 → gapit-0.6.4}/docs/installation.md +2 -2
  11. {gapit-0.6.3 → gapit-0.6.4}/docs/installation.zh.md +2 -2
  12. {gapit-0.6.3 → gapit-0.6.4}/docs/mcp.md +5 -5
  13. {gapit-0.6.3 → gapit-0.6.4}/docs/mcp.zh.md +5 -5
  14. {gapit-0.6.3 → gapit-0.6.4}/docs/outputs.md +4 -4
  15. {gapit-0.6.3 → gapit-0.6.4}/docs/outputs.zh.md +4 -4
  16. {gapit-0.6.3 → gapit-0.6.4}/docs/quickstart.md +1 -1
  17. {gapit-0.6.3 → gapit-0.6.4}/docs/quickstart.zh.md +1 -1
  18. {gapit-0.6.3 → gapit-0.6.4}/docs/reads.md +6 -6
  19. {gapit-0.6.3 → gapit-0.6.4}/docs/reads.zh.md +6 -6
  20. {gapit-0.6.3 → gapit-0.6.4}/docs/screen.md +6 -4
  21. {gapit-0.6.3 → gapit-0.6.4}/docs/screen.zh.md +5 -4
  22. {gapit-0.6.3 → gapit-0.6.4}/docs/summary.md +2 -2
  23. {gapit-0.6.3 → gapit-0.6.4}/docs/summary.zh.md +2 -2
  24. {gapit-0.6.3 → gapit-0.6.4}/pixi.lock +2 -2
  25. {gapit-0.6.3 → gapit-0.6.4}/pixi.toml +1 -1
  26. {gapit-0.6.3 → gapit-0.6.4}/pyproject.toml +1 -1
  27. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/__init__.py +1 -1
  28. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_db.py +9 -2
  29. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_screen.py +2 -0
  30. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/db_ops.py +5 -1
  31. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/progress.py +49 -2
  32. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/screening.py +6 -1
  33. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/screening_reads_positional.py +6 -1
  34. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster2_vp_none.json +1 -1
  35. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster2_vp_none.md +1 -1
  36. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster2_vp_o3k6.json +1 -1
  37. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster2_vp_o3k6.md +1 -1
  38. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_exact.json +1 -1
  39. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_exact.md +1 -1
  40. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_fragmented.json +1 -1
  41. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_fragmented.md +1 -1
  42. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_ambiguous.json +1 -1
  43. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_ambiguous.md +1 -1
  44. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_cm_exact.json +1 -1
  45. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_cm_exact.md +1 -1
  46. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_exact.json +1 -1
  47. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_exact.md +1 -1
  48. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_vc_inaba.json +1 -1
  49. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_vc_inaba.md +1 -1
  50. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/fragments_merge.json +1 -1
  51. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/fragments_merge.md +1 -1
  52. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_dec_pic_astA.json +1 -1
  53. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_dec_pic_astA.md +1 -1
  54. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_doumith_4b.json +1 -1
  55. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_doumith_4b.md +1 -1
  56. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_serotyping_l4b.json +1 -1
  57. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_serotyping_l4b.md +1 -1
  58. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_serotyping_mixed.json +1 -1
  59. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_serotyping_mixed.md +1 -1
  60. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_serotyping_vp_typed.json +1 -1
  61. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_serotyping_vp_typed.md +1 -1
  62. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_shigella_mixed.json +1 -1
  63. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_shigella_mixed.md +1 -1
  64. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_typing_exact.json +1 -1
  65. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/gene_typing_exact.md +1 -1
  66. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/reads_tinyamr.json +1 -1
  67. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/reads_tinyamr.md +1 -1
  68. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/screen_multi.json +1 -1
  69. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/screen_multi.md +1 -1
  70. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/summary_multi.json +1 -1
  71. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/summary_multi.md +1 -1
  72. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/typing_markers.json +1 -1
  73. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/typing_markers.md +1 -1
  74. {gapit-0.6.3 → gapit-0.6.4}/tests/test_progress.py +100 -0
  75. {gapit-0.6.3 → gapit-0.6.4}/.gitattributes +0 -0
  76. {gapit-0.6.3 → gapit-0.6.4}/.github/workflows/ci.yml +0 -0
  77. {gapit-0.6.3 → gapit-0.6.4}/.github/workflows/docs.yml +0 -0
  78. {gapit-0.6.3 → gapit-0.6.4}/.github/workflows/release.yml +0 -0
  79. {gapit-0.6.3 → gapit-0.6.4}/.gitignore +0 -0
  80. {gapit-0.6.3 → gapit-0.6.4}/AGENTS.md +0 -0
  81. {gapit-0.6.3 → gapit-0.6.4}/CODE_QUALITY_REPORT.md +0 -0
  82. {gapit-0.6.3 → gapit-0.6.4}/CONTRIBUTING.md +0 -0
  83. {gapit-0.6.3 → gapit-0.6.4}/LICENSE +0 -0
  84. {gapit-0.6.3 → gapit-0.6.4}/PLAN.md +0 -0
  85. {gapit-0.6.3 → gapit-0.6.4}/README.md +0 -0
  86. {gapit-0.6.3 → gapit-0.6.4}/SECURITY.md +0 -0
  87. {gapit-0.6.3 → gapit-0.6.4}/SPEC.md +0 -0
  88. {gapit-0.6.3 → gapit-0.6.4}/docs/custom-db.md +0 -0
  89. {gapit-0.6.3 → gapit-0.6.4}/docs/custom-db.zh.md +0 -0
  90. {gapit-0.6.3 → gapit-0.6.4}/docs/faq.md +0 -0
  91. {gapit-0.6.3 → gapit-0.6.4}/docs/faq.zh.md +0 -0
  92. {gapit-0.6.3 → gapit-0.6.4}/docs/gseek-engine.md +0 -0
  93. {gapit-0.6.3 → gapit-0.6.4}/docs/gseek-engine.zh.md +0 -0
  94. {gapit-0.6.3 → gapit-0.6.4}/docs/index.md +0 -0
  95. {gapit-0.6.3 → gapit-0.6.4}/docs/index.zh.md +0 -0
  96. {gapit-0.6.3 → gapit-0.6.4}/docs/typing.md +0 -0
  97. {gapit-0.6.3 → gapit-0.6.4}/docs/typing.zh.md +0 -0
  98. {gapit-0.6.3 → gapit-0.6.4}/mkdocs.yml +0 -0
  99. {gapit-0.6.3 → gapit-0.6.4}/scripts/cluster_calibration.py +0 -0
  100. {gapit-0.6.3 → gapit-0.6.4}/scripts/generate_vp_typing.py +0 -0
  101. {gapit-0.6.3 → gapit-0.6.4}/scripts/vp_rules_matrix.tsv +0 -0
  102. {gapit-0.6.3 → gapit-0.6.4}/scripts/vp_typing_support.py +0 -0
  103. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/blast.py +0 -0
  104. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/bundled.py +0 -0
  105. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/bundled_cluster.py +0 -0
  106. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cli.py +0 -0
  107. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cluster.py +0 -0
  108. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cluster_math.py +0 -0
  109. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/clusterbuild.py +0 -0
  110. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_db_build.py +0 -0
  111. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_db_install.py +0 -0
  112. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_db_outdated.py +0 -0
  113. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_db_search.py +0 -0
  114. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_screen_positionals.py +0 -0
  115. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_screen_reads_args.py +0 -0
  116. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_summary.py +0 -0
  117. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/cmd_typing.py +0 -0
  118. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/config.py +0 -0
  119. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoh/bundled.json +0 -0
  120. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoh/sequences +0 -0
  121. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoli_dec/bundled.json +0 -0
  122. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoli_dec/floors.json +0 -0
  123. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoli_dec/records.jsonl +0 -0
  124. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoli_dec/sequences +0 -0
  125. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ecoli_dec/typing.json +0 -0
  126. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/lm_doumith/bundled.json +0 -0
  127. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/lm_doumith/sequences +0 -0
  128. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/lm_doumith/typing.json +0 -0
  129. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ncbi/bundled.json +0 -0
  130. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/ncbi/sequences +0 -0
  131. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/resfinder/bundled.json +0 -0
  132. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/resfinder/sequences +0 -0
  133. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vc_serogroup/bundled.json +0 -0
  134. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vc_serogroup/floors.json +0 -0
  135. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vc_serogroup/records.jsonl +0 -0
  136. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vc_serogroup/sequences +0 -0
  137. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vc_serogroup/typing.json +0 -0
  138. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vp_ok/bundled.json +0 -0
  139. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vp_ok/features.json +0 -0
  140. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vp_ok/sequences +0 -0
  141. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/data/dbs/vp_ok/typing.json +0 -0
  142. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/db.py +0 -0
  143. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/db_build_meta.py +0 -0
  144. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/db_build_ops.py +0 -0
  145. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/db_query_ops.py +0 -0
  146. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/db_txn.py +0 -0
  147. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/dbbuild.py +0 -0
  148. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/dbcodec.py +0 -0
  149. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/dispatch.py +0 -0
  150. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/engines.py +0 -0
  151. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/errors.py +0 -0
  152. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/fasta.py +0 -0
  153. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/__init__.py +0 -0
  154. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/cluster.py +0 -0
  155. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/cluster2.py +0 -0
  156. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/cluster_md.py +0 -0
  157. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/csvutil.py +0 -0
  158. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/json.py +0 -0
  159. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/md.py +0 -0
  160. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/reads_json.py +0 -0
  161. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/reads_tsv.py +0 -0
  162. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/schemas.py +0 -0
  163. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/summary.py +0 -0
  164. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/tsv.py +0 -0
  165. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/formats/typing_result.py +0 -0
  166. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/fragments.py +0 -0
  167. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/gbfeatures.py +0 -0
  168. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/gene_floors.py +0 -0
  169. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/gffparse.py +0 -0
  170. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/gseek_engine.py +0 -0
  171. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/hits.py +0 -0
  172. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/mcp.py +0 -0
  173. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/mcp_schemas.py +0 -0
  174. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/mcp_tools.py +0 -0
  175. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/minimap.py +0 -0
  176. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/minimap2_run.py +0 -0
  177. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/paf.py +0 -0
  178. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/proctools.py +0 -0
  179. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/__init__.py +0 -0
  180. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/ab_k.py +0 -0
  181. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/ab_o.py +0 -0
  182. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/argannot.py +0 -0
  183. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/bacmet2.py +0 -0
  184. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/card.py +0 -0
  185. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/cluster_common.py +0 -0
  186. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/common.py +0 -0
  187. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/ecoh.py +0 -0
  188. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/ecoli_kps.py +0 -0
  189. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/ecoli_vf.py +0 -0
  190. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/kosc_k.py +0 -0
  191. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/kosc_o.py +0 -0
  192. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/kpsc_k.py +0 -0
  193. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/kpsc_o.py +0 -0
  194. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/megares.py +0 -0
  195. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/ncbi.py +0 -0
  196. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/plasmidfinder.py +0 -0
  197. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/resfinder.py +0 -0
  198. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/upec_expec_vf.py +0 -0
  199. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/vfdb.py +0 -0
  200. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/providers/victors.py +0 -0
  201. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/py.typed +0 -0
  202. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/readpairs.py +0 -0
  203. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/reads.py +0 -0
  204. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/records.py +0 -0
  205. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/report.py +0 -0
  206. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/screening_cluster.py +0 -0
  207. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/screening_reads.py +0 -0
  208. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/seqconvert.py +0 -0
  209. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/summary.py +0 -0
  210. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_cluster2.py +0 -0
  211. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_decide.py +0 -0
  212. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_engine.py +0 -0
  213. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_gene.py +0 -0
  214. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_input.py +0 -0
  215. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_models.py +0 -0
  216. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_ops.py +0 -0
  217. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_results.py +0 -0
  218. {gapit-0.6.3 → gapit-0.6.4}/src/gapit/typing_rules.py +0 -0
  219. {gapit-0.6.3 → gapit-0.6.4}/tests/data/bundled_differential/resfinder/HEAD.zip +0 -0
  220. {gapit-0.6.3 → gapit-0.6.4}/tests/data/bundled_differential/resfinder/README.md +0 -0
  221. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/bakta_style.gbk +0 -0
  222. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/clusters.gff3 +0 -0
  223. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/clusters_gz.gff3.gz +0 -0
  224. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/clusters_sidecar.fa +0 -0
  225. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/clusters_sidecar.gff3 +0 -0
  226. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/colliding_genes.gbk +0 -0
  227. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/compound.gbk +0 -0
  228. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/gz_input.gbk.gz +0 -0
  229. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/kaptive_style.gbk +0 -0
  230. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/nofasta.gff3 +0 -0
  231. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/screening.gbk +0 -0
  232. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/typing_invalid.json +0 -0
  233. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/typing_screen.json +0 -0
  234. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/typing_screen_cm.json +0 -0
  235. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/typing_screen_v2.json +0 -0
  236. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/typing_valid.json +0 -0
  237. {gapit-0.6.3 → gapit-0.6.4}/tests/data/cluster/unnamed_cds.gbk +0 -0
  238. {gapit-0.6.3 → gapit-0.6.4}/tests/data/contigs/full.fa +0 -0
  239. {gapit-0.6.3 → gapit-0.6.4}/tests/data/contigs/gap.fa +0 -0
  240. {gapit-0.6.3 → gapit-0.6.4}/tests/data/contigs/none.fa +0 -0
  241. {gapit-0.6.3 → gapit-0.6.4}/tests/data/contigs/partial.fa +0 -0
  242. {gapit-0.6.3 → gapit-0.6.4}/tests/data/contigs/sort.fa +0 -0
  243. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.embl +0 -0
  244. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.embl.bz2 +0 -0
  245. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.fa +0 -0
  246. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.fa.gz +0 -0
  247. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.fq +0 -0
  248. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.gbk +0 -0
  249. {gapit-0.6.3 → gapit-0.6.4}/tests/data/convert/sample.gbk.gz +0 -0
  250. {gapit-0.6.3 → gapit-0.6.4}/tests/data/db/tinyamr/sequences +0 -0
  251. {gapit-0.6.3 → gapit-0.6.4}/tests/data/fragments/fragdb/sequences +0 -0
  252. {gapit-0.6.3 → gapit-0.6.4}/tests/data/fragments/split3040.fa +0 -0
  253. {gapit-0.6.3 → gapit-0.6.4}/tests/data/fragments/split4060.fa +0 -0
  254. {gapit-0.6.3 → gapit-0.6.4}/tests/data/fragments/split5050.fa +0 -0
  255. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/argannot/ARG-ANNOT_NT_V6_July2019.txt +0 -0
  256. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/bacmet2/BacMet2_EXP_database.fasta +0 -0
  257. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/card/card.json +0 -0
  258. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/ecoh/EcOH.fasta +0 -0
  259. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/ecoli_vf/repaired_ecoli_vfs_shortnames.ffn +0 -0
  260. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/megares/megares_drugs_demo.fasta +0 -0
  261. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/ncbi/AMR_CDS.fa +0 -0
  262. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/ncbi/ReferenceGeneCatalog.txt +0 -0
  263. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/plasmidfinder/plasmids_a.fsa +0 -0
  264. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/plasmidfinder/plasmids_b.fsa +0 -0
  265. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/resfinder/aminoglycoside.fsa +0 -0
  266. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/resfinder/beta-lactam.fsa +0 -0
  267. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/resfinder/phenotypes.txt +0 -0
  268. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/upec_expec_vf/UPEC_ExPEC_VF.tsv +0 -0
  269. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/vfdb/VFDB_setA_nt.fas +0 -0
  270. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/victors/gen_downloads.php +0 -0
  271. {gapit-0.6.3 → gapit-0.6.4}/tests/data/providers/victors/gen_downloads_protein.php +0 -0
  272. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/bla_partial.fq +0 -0
  273. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/junk.fq +0 -0
  274. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/s1_1.fq.gz +0 -0
  275. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/s1_2.fq.gz +0 -0
  276. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/s2_R1.fq.gz +0 -0
  277. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/s2_R2.fq.gz +0 -0
  278. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/suly_partial.fq +0 -0
  279. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_R1.fq +0 -0
  280. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_R2.fq +0 -0
  281. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_full.fq +0 -0
  282. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_full.fq.gz +0 -0
  283. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_lane1.fq +0 -0
  284. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_lane2.fq +0 -0
  285. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_pe1_R1.fq +0 -0
  286. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_pe1_R2.fq +0 -0
  287. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_pe2_R1.fq +0 -0
  288. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads/tetx_pe2_R2.fq +0 -0
  289. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads2/ont_homologs.fq +0 -0
  290. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads2/sr_homologs.fq +0 -0
  291. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads2_db/homologs/sequences +0 -0
  292. {gapit-0.6.3 → gapit-0.6.4}/tests/data/reads_db/tinyreads/sequences +0 -0
  293. {gapit-0.6.3 → gapit-0.6.4}/tests/data/summary/empty.tsv +0 -0
  294. {gapit-0.6.3 → gapit-0.6.4}/tests/data/summary/multi_sample.tsv +0 -0
  295. {gapit-0.6.3 → gapit-0.6.4}/tests/data/summary/sample_a.csv +0 -0
  296. {gapit-0.6.3 → gapit-0.6.4}/tests/data/summary/sample_a.tsv +0 -0
  297. {gapit-0.6.3 → gapit-0.6.4}/tests/data/summary/sample_b.csv +0 -0
  298. {gapit-0.6.3 → gapit-0.6.4}/tests/data/summary/sample_b.tsv +0 -0
  299. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/dec_s1_aggR_pic_uidA.fasta +0 -0
  300. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/dec_s2_pic_astA_uidA.fasta +0 -0
  301. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/dec_s3_stx2a_escV_aggR_uidA.fasta +0 -0
  302. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/exact.fa +0 -0
  303. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/listeria_1c.fa +0 -0
  304. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/listeria_4b.fa +0 -0
  305. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/listeria_nogate.fa +0 -0
  306. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/markers.fa +0 -0
  307. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/mutated.fa +0 -0
  308. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/negative.fa +0 -0
  309. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/partial.fa +0 -0
  310. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/cholerae.gbk +0 -0
  311. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/cholerae.json +0 -0
  312. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/dec.fa +0 -0
  313. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/dec.json +0 -0
  314. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/doumith.fa +0 -0
  315. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/doumith.json +0 -0
  316. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/lm_doumith.fa +0 -0
  317. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/lm_doumith.json +0 -0
  318. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/meningotype.fa +0 -0
  319. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/meningotype.json +0 -0
  320. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/shigella.fa +0 -0
  321. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/shigella.json +0 -0
  322. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/vp_ok.gbk +0 -0
  323. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/schemes/vp_ok.json +0 -0
  324. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/serotyping.fa +0 -0
  325. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/typing_markers_v1.json +0 -0
  326. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/typing_markers_v2.json +0 -0
  327. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/typing_serotyping_v2.json +0 -0
  328. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/vp_mixed.fa +0 -0
  329. {gapit-0.6.3 → gapit-0.6.4}/tests/data/typing/vp_typed.fa +0 -0
  330. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster2_vp_none.tsv +0 -0
  331. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster2_vp_o3k6.tsv +0 -0
  332. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_exact.tsv +0 -0
  333. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_fragmented.tsv +0 -0
  334. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_ambiguous.tsv +0 -0
  335. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_cm_exact.tsv +0 -0
  336. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_typing_exact.tsv +0 -0
  337. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/cluster_vc_inaba.tsv +0 -0
  338. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/ecoli_dec_typed.tsv +0 -0
  339. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/ecoli_dec_typing.tsv +0 -0
  340. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/features_kaptive_style.json +0 -0
  341. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/features_screening.json +0 -0
  342. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/fragments_merge.tsv +0 -0
  343. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/lm_doumith_typing.tsv +0 -0
  344. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/summary_dutch.tsv +0 -0
  345. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/summary_multi.csv +0 -0
  346. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/summary_multi.tsv +0 -0
  347. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/tinyamr_multi_nopath.csv +0 -0
  348. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/tinyamr_multi_nopath.tsv +0 -0
  349. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/typing_markers.tsv +0 -0
  350. {gapit-0.6.3 → gapit-0.6.4}/tests/golden/typing_serotyping.tsv +0 -0
  351. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/corpus/01_exact_and_junk.fa +0 -0
  352. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/corpus/02_mutated.fa +0 -0
  353. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/corpus/03_truncated.fa +0 -0
  354. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/corpus/04_reverse.fa +0 -0
  355. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/corpus/05_threshold.fa +0 -0
  356. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/make_corpus.py +0 -0
  357. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/run_parity.py +0 -0
  358. {gapit-0.6.3 → gapit-0.6.4}/tests/parity/run_summary_parity.py +0 -0
  359. {gapit-0.6.3 → gapit-0.6.4}/tests/test_blast_parse.py +0 -0
  360. {gapit-0.6.3 → gapit-0.6.4}/tests/test_blast_pipeline.py +0 -0
  361. {gapit-0.6.3 → gapit-0.6.4}/tests/test_bundled.py +0 -0
  362. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_aligner.py +0 -0
  363. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_bare_help.py +0 -0
  364. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_completion.py +0 -0
  365. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_db_build.py +0 -0
  366. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_db_build_cluster.py +0 -0
  367. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_db_fetch.py +0 -0
  368. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_db_path.py +0 -0
  369. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_db_query.py +0 -0
  370. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_fragments.py +0 -0
  371. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_reads.py +0 -0
  372. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_reads2.py +0 -0
  373. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_reads_glob.py +0 -0
  374. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_reads_glob_jobs.py +0 -0
  375. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_schema.py +0 -0
  376. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_screen.py +0 -0
  377. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_screen_jobs.py +0 -0
  378. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_setupdb.py +0 -0
  379. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_short_options.py +0 -0
  380. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cli_summary.py +0 -0
  381. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster2_build.py +0 -0
  382. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster_build_validation.py +0 -0
  383. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster_calibration.py +0 -0
  384. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster_db.py +0 -0
  385. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster_math.py +0 -0
  386. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster_screen.py +0 -0
  387. {gapit-0.6.3 → gapit-0.6.4}/tests/test_cluster_typing.py +0 -0
  388. {gapit-0.6.3 → gapit-0.6.4}/tests/test_config.py +0 -0
  389. {gapit-0.6.3 → gapit-0.6.4}/tests/test_csv_contract.py +0 -0
  390. {gapit-0.6.3 → gapit-0.6.4}/tests/test_db.py +0 -0
  391. {gapit-0.6.3 → gapit-0.6.4}/tests/test_db_fetch.py +0 -0
  392. {gapit-0.6.3 → gapit-0.6.4}/tests/test_db_field_validation.py +0 -0
  393. {gapit-0.6.3 → gapit-0.6.4}/tests/test_db_headers.py +0 -0
  394. {gapit-0.6.3 → gapit-0.6.4}/tests/test_db_list_extras.py +0 -0
  395. {gapit-0.6.3 → gapit-0.6.4}/tests/test_db_txn.py +0 -0
  396. {gapit-0.6.3 → gapit-0.6.4}/tests/test_dbbuild.py +0 -0
  397. {gapit-0.6.3 → gapit-0.6.4}/tests/test_dbcodec.py +0 -0
  398. {gapit-0.6.3 → gapit-0.6.4}/tests/test_error_envelope.py +0 -0
  399. {gapit-0.6.3 → gapit-0.6.4}/tests/test_fasta.py +0 -0
  400. {gapit-0.6.3 → gapit-0.6.4}/tests/test_fragments.py +0 -0
  401. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gapit_db_e2e.py +0 -0
  402. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gbfeatures.py +0 -0
  403. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gene_floors.py +0 -0
  404. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gene_floors_e2e.py +0 -0
  405. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gene_typing.py +0 -0
  406. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gene_typing2.py +0 -0
  407. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gffparse.py +0 -0
  408. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gseek_engine.py +0 -0
  409. {gapit-0.6.3 → gapit-0.6.4}/tests/test_gseek_parity.py +0 -0
  410. {gapit-0.6.3 → gapit-0.6.4}/tests/test_hits.py +0 -0
  411. {gapit-0.6.3 → gapit-0.6.4}/tests/test_json_format.py +0 -0
  412. {gapit-0.6.3 → gapit-0.6.4}/tests/test_lm_doumith.py +0 -0
  413. {gapit-0.6.3 → gapit-0.6.4}/tests/test_mcp.py +0 -0
  414. {gapit-0.6.3 → gapit-0.6.4}/tests/test_mcp_db_tools.py +0 -0
  415. {gapit-0.6.3 → gapit-0.6.4}/tests/test_mcp_protocol.py +0 -0
  416. {gapit-0.6.3 → gapit-0.6.4}/tests/test_mcp_reads.py +0 -0
  417. {gapit-0.6.3 → gapit-0.6.4}/tests/test_md_format.py +0 -0
  418. {gapit-0.6.3 → gapit-0.6.4}/tests/test_minimap.py +0 -0
  419. {gapit-0.6.3 → gapit-0.6.4}/tests/test_mol_type.py +0 -0
  420. {gapit-0.6.3 → gapit-0.6.4}/tests/test_oversubscription.py +0 -0
  421. {gapit-0.6.3 → gapit-0.6.4}/tests/test_paf.py +0 -0
  422. {gapit-0.6.3 → gapit-0.6.4}/tests/test_paf_identity.py +0 -0
  423. {gapit-0.6.3 → gapit-0.6.4}/tests/test_parser_fuzz.py +0 -0
  424. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_argannot.py +0 -0
  425. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_bacmet2.py +0 -0
  426. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_card.py +0 -0
  427. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_ecoh.py +0 -0
  428. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_ecoli_vf.py +0 -0
  429. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_kaptive.py +0 -0
  430. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_megares.py +0 -0
  431. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_ncbi.py +0 -0
  432. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_plasmidfinder.py +0 -0
  433. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_resfinder.py +0 -0
  434. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_upec_expec_vf.py +0 -0
  435. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_vfdb.py +0 -0
  436. {gapit-0.6.3 → gapit-0.6.4}/tests/test_provider_victors.py +0 -0
  437. {gapit-0.6.3 → gapit-0.6.4}/tests/test_providers_common.py +0 -0
  438. {gapit-0.6.3 → gapit-0.6.4}/tests/test_readpairs.py +0 -0
  439. {gapit-0.6.3 → gapit-0.6.4}/tests/test_reads2_homologs.py +0 -0
  440. {gapit-0.6.3 → gapit-0.6.4}/tests/test_reads2_model.py +0 -0
  441. {gapit-0.6.3 → gapit-0.6.4}/tests/test_reads_aggregate.py +0 -0
  442. {gapit-0.6.3 → gapit-0.6.4}/tests/test_reads_integration.py +0 -0
  443. {gapit-0.6.3 → gapit-0.6.4}/tests/test_reads_interval_union.py +0 -0
  444. {gapit-0.6.3 → gapit-0.6.4}/tests/test_reads_streaming.py +0 -0
  445. {gapit-0.6.3 → gapit-0.6.4}/tests/test_records.py +0 -0
  446. {gapit-0.6.3 → gapit-0.6.4}/tests/test_report.py +0 -0
  447. {gapit-0.6.3 → gapit-0.6.4}/tests/test_screen_integration.py +0 -0
  448. {gapit-0.6.3 → gapit-0.6.4}/tests/test_screening_reads_unit.py +0 -0
  449. {gapit-0.6.3 → gapit-0.6.4}/tests/test_seqconvert.py +0 -0
  450. {gapit-0.6.3 → gapit-0.6.4}/tests/test_seqconvert_differential.py +0 -0
  451. {gapit-0.6.3 → gapit-0.6.4}/tests/test_streaming_chunks.py +0 -0
  452. {gapit-0.6.3 → gapit-0.6.4}/tests/test_summary.py +0 -0
  453. {gapit-0.6.3 → gapit-0.6.4}/tests/test_summary_formats.py +0 -0
  454. {gapit-0.6.3 → gapit-0.6.4}/tests/test_tsv.py +0 -0
  455. {gapit-0.6.3 → gapit-0.6.4}/tests/test_typing_command.py +0 -0
  456. {gapit-0.6.3 → gapit-0.6.4}/tests/test_typing_engine.py +0 -0
  457. {gapit-0.6.3 → gapit-0.6.4}/tests/test_typing_models.py +0 -0
  458. {gapit-0.6.3 → gapit-0.6.4}/tests/test_typing_schemes.py +0 -0
  459. {gapit-0.6.3 → gapit-0.6.4}/tests/test_typing_schemes_cluster.py +0 -0
  460. {gapit-0.6.3 → gapit-0.6.4}/tests/test_typing_stage2.py +0 -0
  461. {gapit-0.6.3 → gapit-0.6.4}/tests/test_vc_serogroup.py +0 -0
  462. {gapit-0.6.3 → gapit-0.6.4}/tests/test_version.py +0 -0
  463. {gapit-0.6.3 → gapit-0.6.4}/tests/test_vp_ok.py +0 -0
  464. {gapit-0.6.3 → gapit-0.6.4}/tests/test_vp_ok_acceptance.py +0 -0
@@ -5,6 +5,18 @@ All notable changes to gapit are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this
6
6
  project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.6.4] - 2026-10-27
9
+
10
+ ### Fixed
11
+
12
+ - **Batch progress vs stdout data.** The progress bar now uses the gside/gmlst
13
+ hand-off: `transient=True`, stdout chunks go through `BatchProgress.write`
14
+ (stop -> `sys.stdout.write` + flush -> start), and stderr notices have a
15
+ `notice()` hand-off. The bar is inactive for a single input. On a shared TTY
16
+ data rows no longer start inside the bar line; stdout bytes are unchanged when
17
+ output is piped. Applies to contig batches and positional FASTQ samples;
18
+ `db fetch` receipts use the same suspend/restore path.
19
+
8
20
  ## [0.6.3] - 2026-10-26
9
21
 
10
22
  ### Added
@@ -7,7 +7,7 @@ authors:
7
7
  repository-code: "https://github.com/indexofire/gapit"
8
8
  url: "https://indexofire.github.io/gapit/"
9
9
  license: MIT
10
- version: "0.6.3"
10
+ version: "0.6.4"
11
11
  date-released: "2026-10-26"
12
12
  keywords:
13
13
  - bioinformatics
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gapit
3
- Version: 0.6.3
3
+ Version: 0.6.4
4
4
  Summary: Mass screening of contigs and reads for known genes — agent-first Python reimplementation of abricate
5
5
  Project-URL: Homepage, https://github.com/indexofire/gapit
6
6
  Project-URL: Documentation, https://indexofire.github.io/gapit/
@@ -13,7 +13,7 @@ Version, as one JSON line:
13
13
 
14
14
  ```console
15
15
  $ gapit --version --json
16
- {"schema":"gapit.version/1","name":"gapit","version":"0.6.3"}
16
+ {"schema":"gapit.version/1","name":"gapit","version":"0.6.4"}
17
17
  ```
18
18
 
19
19
  Output schemas. Fifteen documents are introspectable: `report`, `typing_result`,
@@ -12,7 +12,7 @@ gapit 生来就是被程序驱动的。每个输出都以机器可读为设计
12
12
 
13
13
  ```console
14
14
  $ gapit --version --json
15
- {"schema":"gapit.version/1","name":"gapit","version":"0.6.3"}
15
+ {"schema":"gapit.version/1","name":"gapit","version":"0.6.4"}
16
16
  ```
17
17
 
18
18
  输出 schema。十五个文档可自省:`report`、`typing_result`、`reads`、`reads2`、
@@ -564,7 +564,7 @@ versions. A real one, from the plasmidfinder database:
564
564
  "upstream_version": "",
565
565
  "tool": {
566
566
  "name": "gapit",
567
- "version": "0.6.3"
567
+ "version": "0.6.4"
568
568
  },
569
569
  "makeblastdb_version": "blastn: 2.17.0+",
570
570
  "minimap2_version": "2.31-r1302"
@@ -526,7 +526,7 @@ manifest,来自 plasmidfinder 数据库:
526
526
  "upstream_version": "",
527
527
  "tool": {
528
528
  "name": "gapit",
529
- "version": "0.6.3"
529
+ "version": "0.6.4"
530
530
  },
531
531
  "makeblastdb_version": "blastn: 2.17.0+",
532
532
  "minimap2_version": "2.31-r1302"
@@ -180,7 +180,7 @@ docker run --rm -it \
180
180
  --user "$(id -u):$(id -g)" \
181
181
  -v gapit-data:/data/gapit \
182
182
  -e GAPIT_DATADIR=/data/gapit \
183
- gapit:0.6.3 gapit db list
183
+ gapit:0.6.4 gapit db list
184
184
  ```
185
185
 
186
186
  For CI, mount or cache a workspace directory and pin versions:
@@ -189,7 +189,7 @@ For CI, mount or cache a workspace directory and pin versions:
189
189
  docker run --rm \
190
190
  -v "$PWD/.gapit-db:/data/gapit" \
191
191
  -e GAPIT_DATADIR=/data/gapit \
192
- gapit:0.6.3 gapit screen sample.fna --db ecoli_dec
192
+ gapit:0.6.4 gapit screen sample.fna --db ecoli_dec
193
193
  ```
194
194
 
195
195
  You can bake reference databases into an image for **read-only** screening:
@@ -164,7 +164,7 @@ docker run --rm -it \
164
164
  --user "$(id -u):$(id -g)" \
165
165
  -v gapit-data:/data/gapit \
166
166
  -e GAPIT_DATADIR=/data/gapit \
167
- gapit:0.6.3 gapit db list
167
+ gapit:0.6.4 gapit db list
168
168
  ```
169
169
 
170
170
  CI 中挂载或缓存 workspace 目录,并固定版本:
@@ -173,7 +173,7 @@ CI 中挂载或缓存 workspace 目录,并固定版本:
173
173
  docker run --rm \
174
174
  -v "$PWD/.gapit-db:/data/gapit" \
175
175
  -e GAPIT_DATADIR=/data/gapit \
176
- gapit:0.6.3 gapit screen sample.fna --db ecoli_dec
176
+ gapit:0.6.4 gapit screen sample.fna --db ecoli_dec
177
177
  ```
178
178
 
179
179
  可以为**只读**筛查把参考库烤进镜像:
@@ -48,9 +48,9 @@ gapit --version
48
48
 
49
49
  ```console
50
50
  $ gapit --version
51
- gapit 0.6.3
51
+ gapit 0.6.4
52
52
  $ gapit --version --json
53
- {"schema":"gapit.version/1","name":"gapit","version":"0.6.3"}
53
+ {"schema":"gapit.version/1","name":"gapit","version":"0.6.4"}
54
54
  ```
55
55
 
56
56
  ## Optional gseek engine
@@ -46,9 +46,9 @@ gapit --version
46
46
 
47
47
  ```console
48
48
  $ gapit --version
49
- gapit 0.6.3
49
+ gapit 0.6.4
50
50
  $ gapit --version --json
51
- {"schema":"gapit.version/1","name":"gapit","version":"0.6.3"}
51
+ {"schema":"gapit.version/1","name":"gapit","version":"0.6.4"}
52
52
  ```
53
53
 
54
54
  ## 可选 gseek 引擎
@@ -59,7 +59,7 @@ reads-engine parameters); `minid`/`mincov` are ignored by `minimap2`.
59
59
  Notes:
60
60
 
61
61
  - Screen parameters use snake_case (`merge_fragments`, `min_gene_cov`,
62
- `min_gene_id`, `min_cluster_cov`). The pre-0.6.3 camelCase spellings are still
62
+ `min_gene_id`, `min_cluster_cov`). The pre-0.6.4 camelCase spellings are still
63
63
  accepted as aliases for compatibility, but new clients should use snake_case.
64
64
  - File paths resolve relative to the server's working directory; absolute
65
65
  paths are safest.
@@ -102,7 +102,7 @@ EOF
102
102
  Response line 1, verbatim:
103
103
 
104
104
  ```text
105
- {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"gapit","version":"0.6.3"}}}
105
+ {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"gapit","version":"0.6.4"}}}
106
106
  ```
107
107
 
108
108
  Response line 2 (real output, elided in the middle; each tool carries its full
@@ -125,7 +125,7 @@ the same run):
125
125
  ```json
126
126
  {
127
127
  "schema": "gapit.report/1",
128
- "tool": {"name": "gapit", "version": "0.6.3"},
128
+ "tool": {"name": "gapit", "version": "0.6.4"},
129
129
  "created_at": "2026-09-19T01:15:44Z",
130
130
  "params": {"db": "tinyamr", "minid": 80.0, "mincov": 80.0, "threads": 1},
131
131
  "files": [
@@ -181,7 +181,7 @@ the same run):
181
181
  ```json
182
182
  {
183
183
  "schema": "gapit.reads/1",
184
- "tool": {"name": "gapit", "version": "0.6.3"},
184
+ "tool": {"name": "gapit", "version": "0.6.4"},
185
185
  "created_at": "2026-09-22T00:07:35Z",
186
186
  "params": {
187
187
  "db": "tinyreads",
@@ -256,7 +256,7 @@ hit is the gene the agent just built the database from (real output):
256
256
  ```json
257
257
  {
258
258
  "schema": "gapit.report/1",
259
- "tool": {"name": "gapit", "version": "0.6.3"},
259
+ "tool": {"name": "gapit", "version": "0.6.4"},
260
260
  "created_at": "2026-09-20T13:38:39Z",
261
261
  "params": {"db": "myamr", "minid": 80.0, "mincov": 80.0, "threads": 1},
262
262
  "files": [
@@ -56,7 +56,7 @@ shell 外调或解析终端输出。协议是手写的换行分隔 JSON-RPC 2.0
56
56
  注意事项:
57
57
 
58
58
  - screen 参数使用 snake_case(`merge_fragments`、`min_gene_cov`、`min_gene_id`、
59
- `min_cluster_cov`);0.6.3 之前的 camelCase 拼写仍作为兼容别名接受,新客户端
59
+ `min_cluster_cov`);0.6.4 之前的 camelCase 拼写仍作为兼容别名接受,新客户端
60
60
  应使用 snake_case。
61
61
  - 文件路径相对服务器的工作目录解析;绝对路径最稳妥。
62
62
  - 数据目录来自 `--datadir`(可用时),然后 `$GAPIT_DATADIR`,然后
@@ -98,7 +98,7 @@ EOF
98
98
  响应第 1 行,原样:
99
99
 
100
100
  ```text
101
- {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"gapit","version":"0.6.3"}}}
101
+ {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"gapit","version":"0.6.4"}}}
102
102
  ```
103
103
 
104
104
  响应第 2 行(真实输出,中段省略;每个工具携带完整的 `inputSchema`):
@@ -119,7 +119,7 @@ EOF
119
119
  ```json
120
120
  {
121
121
  "schema": "gapit.report/1",
122
- "tool": {"name": "gapit", "version": "0.6.3"},
122
+ "tool": {"name": "gapit", "version": "0.6.4"},
123
123
  "created_at": "2026-09-19T01:15:44Z",
124
124
  "params": {"db": "tinyamr", "minid": 80.0, "mincov": 80.0, "threads": 1},
125
125
  "files": [
@@ -173,7 +173,7 @@ EOF
173
173
  ```json
174
174
  {
175
175
  "schema": "gapit.reads/1",
176
- "tool": {"name": "gapit", "version": "0.6.3"},
176
+ "tool": {"name": "gapit", "version": "0.6.4"},
177
177
  "created_at": "2026-09-22T00:07:35Z",
178
178
  "params": {
179
179
  "db": "tinyreads",
@@ -246,7 +246,7 @@ export GAPIT_DATADIR=/tmp/gapit-mcp-demo/datadir
246
246
  ```json
247
247
  {
248
248
  "schema": "gapit.report/1",
249
- "tool": {"name": "gapit", "version": "0.6.3"},
249
+ "tool": {"name": "gapit", "version": "0.6.4"},
250
250
  "created_at": "2026-09-20T13:38:39Z",
251
251
  "params": {"db": "myamr", "minid": 80.0, "mincov": 80.0, "threads": 1},
252
252
  "files": [
@@ -141,7 +141,7 @@ Real document, same run as the TSV above:
141
141
  "schema": "gapit.report/1",
142
142
  "tool": {
143
143
  "name": "gapit",
144
- "version": "0.6.3"
144
+ "version": "0.6.4"
145
145
  },
146
146
  "created_at": "2026-09-19T01:12:20Z",
147
147
  "params": {
@@ -233,7 +233,7 @@ row by `(%IDENTITY, %COVERAGE)`. Real document (trimmed):
233
233
  ```json
234
234
  {
235
235
  "schema": "gapit.typing_result/1",
236
- "tool": {"name": "gapit", "version": "0.6.3"},
236
+ "tool": {"name": "gapit", "version": "0.6.4"},
237
237
  "created_at": "2026-10-02T10:04:55Z",
238
238
  "source": ["dec.tsv"],
239
239
  "db": "ecoli_dec",
@@ -420,7 +420,7 @@ summarizing two report files, one with a `tetA` hit and one with none:
420
420
  "schema": "gapit.summary/1",
421
421
  "tool": {
422
422
  "name": "gapit",
423
- "version": "0.6.3"
423
+ "version": "0.6.4"
424
424
  },
425
425
  "created_at": "2026-09-19T01:11:09Z",
426
426
  "params": {
@@ -544,7 +544,7 @@ An agent can discover the whole contract from the binary alone.
544
544
 
545
545
  ```console
546
546
  $ gapit --version --json
547
- {"schema":"gapit.version/1","name":"gapit","version":"0.6.3"}
547
+ {"schema":"gapit.version/1","name":"gapit","version":"0.6.4"}
548
548
  ```
549
549
 
550
550
  `gapit schema <name>` prints the JSON Schema for each document. The eleven names: `report`,
@@ -130,7 +130,7 @@ non-DEC。零命中文件不产生筛查行,因此不会出现在判定输出
130
130
  "schema": "gapit.report/1",
131
131
  "tool": {
132
132
  "name": "gapit",
133
- "version": "0.6.3"
133
+ "version": "0.6.4"
134
134
  },
135
135
  "created_at": "2026-09-19T01:12:20Z",
136
136
  "params": {
@@ -220,7 +220,7 @@ non-DEC。零命中文件不产生筛查行,因此不会出现在判定输出
220
220
  ```json
221
221
  {
222
222
  "schema": "gapit.typing_result/1",
223
- "tool": {"name": "gapit", "version": "0.6.3"},
223
+ "tool": {"name": "gapit", "version": "0.6.4"},
224
224
  "created_at": "2026-10-02T10:04:55Z",
225
225
  "source": ["dec.tsv"],
226
226
  "db": "ecoli_dec",
@@ -403,7 +403,7 @@ typing 的数据库是同一个表头去掉 `PHENOTYPE`。没有位点判定的
403
403
  "schema": "gapit.summary/1",
404
404
  "tool": {
405
405
  "name": "gapit",
406
- "version": "0.6.3"
406
+ "version": "0.6.4"
407
407
  },
408
408
  "created_at": "2026-09-19T01:11:09Z",
409
409
  "params": {
@@ -526,7 +526,7 @@ agent 只凭二进制就能发现整个契约。
526
526
 
527
527
  ```console
528
528
  $ gapit --version --json
529
- {"schema":"gapit.version/1","name":"gapit","version":"0.6.3"}
529
+ {"schema":"gapit.version/1","name":"gapit","version":"0.6.4"}
530
530
  ```
531
531
 
532
532
  `gapit schema <name>` 打印每个文档的 JSON Schema。十二个名字:`report`、
@@ -94,7 +94,7 @@ gapit screen tests/data/contigs/full.fa --db tinyamr --format json
94
94
  "schema": "gapit.report/1",
95
95
  "tool": {
96
96
  "name": "gapit",
97
- "version": "0.6.3"
97
+ "version": "0.6.4"
98
98
  },
99
99
  "created_at": "2026-09-19T01:11:06Z",
100
100
  "params": {
@@ -89,7 +89,7 @@ gapit screen tests/data/contigs/full.fa --db tinyamr --format json
89
89
  "schema": "gapit.report/1",
90
90
  "tool": {
91
91
  "name": "gapit",
92
- "version": "0.6.3"
92
+ "version": "0.6.4"
93
93
  },
94
94
  "created_at": "2026-09-19T01:11:06Z",
95
95
  "params": {
@@ -123,7 +123,7 @@ table, one chunk for the one sample).
123
123
  ## Options
124
124
 
125
125
  Reads mode runs through the same `gapit screen` command; these are the flags that apply
126
- (transcribed from `gapit screen --help`, gapit 0.6.3). Contig-mode flags not listed here
126
+ (transcribed from `gapit screen --help`, gapit 0.6.4). Contig-mode flags not listed here
127
127
  (`--minid`, `--mincov`, `--fofn`, `--noheader`, `--nopath`) do not apply; `--jobs` applies
128
128
  to the wildcard path only.
129
129
 
@@ -337,7 +337,7 @@ The short-read fixture behaves the same with one calibration: `sr` soft-clipping
337
337
  $ gapit screen --r1 ont_homologs.fq --db homologs --read-type map-ont --min-identity 95 --format md --quiet
338
338
  ---
339
339
  schema: gapit.reads/2
340
- tool: gapit 0.6.3
340
+ tool: gapit 0.6.4
341
341
  created_at: 2026-09-20T14:23:33Z
342
342
  db: homologs
343
343
  read_type: map-ont
@@ -433,7 +433,7 @@ $ gapit screen --r1 tetx_full.fq --db tinyreads --format json
433
433
  "schema": "gapit.reads/1",
434
434
  "tool": {
435
435
  "name": "gapit",
436
- "version": "0.6.3"
436
+ "version": "0.6.4"
437
437
  },
438
438
  "created_at": "2026-09-19T01:12:25Z",
439
439
  "params": {
@@ -528,7 +528,7 @@ $ gapit screen --r1 tetx_lane1.fq,tetx_lane2.fq --db tinyreads --format json --q
528
528
  $ gapit screen --r1 tetx_full.fq --db tinyreads --format md
529
529
  ---
530
530
  schema: gapit.reads/1
531
- tool: gapit 0.6.3
531
+ tool: gapit 0.6.4
532
532
  created_at: 2026-09-19T01:12:25Z
533
533
  db: tinyreads
534
534
  read_type: sr
@@ -630,7 +630,7 @@ Detected 2 present genes in /tmp/gapit-demo/assembly.fa
630
630
  "schema": "gapit.reads/1",
631
631
  "tool": {
632
632
  "name": "gapit",
633
- "version": "0.6.3"
633
+ "version": "0.6.4"
634
634
  },
635
635
  "created_at": "2026-09-19T14:23:00Z",
636
636
  "params": {
@@ -689,7 +689,7 @@ cost of allele-level precision. That trade suggests a two-stage workflow over ma
689
689
  pipeline, which applies the identity and coverage floors at abricate parity.
690
690
 
691
691
  Real numbers, one K. pneumoniae RefSeq assembly (GCF_000240185.1, 5.3 Mb, `--db ncbi`,
692
- single-threaded, gapit 0.6.3):
692
+ single-threaded, gapit 0.6.4):
693
693
 
694
694
  ```console
695
695
  $ # Stage 1: survey, ~0.9 s
@@ -113,7 +113,7 @@ frontmatter 保留 `files:`/`genes_found:` 运行总计(它的 tsv 默认渲
113
113
  ## 选项
114
114
 
115
115
  reads 模式走同一条 `gapit screen` 命令;以下是适用的参数(转写自 `gapit screen
116
- --help`,gapit 0.6.3)。这里未列出的 contig 模式参数(`--minid`、`--mincov`、
116
+ --help`,gapit 0.6.4)。这里未列出的 contig 模式参数(`--minid`、`--mincov`、
117
117
  `--fofn`、`--noheader`、`--nopath`)不适用;`--jobs` 只适用于通配符路径(见上文)。
118
118
 
119
119
  | 参数 | 类型 | 默认值 | 说明 |
@@ -318,7 +318,7 @@ Markdown 形式:
318
318
  $ gapit screen --r1 ont_homologs.fq --db homologs --read-type map-ont --min-identity 95 --format md --quiet
319
319
  ---
320
320
  schema: gapit.reads/2
321
- tool: gapit 0.6.3
321
+ tool: gapit 0.6.4
322
322
  created_at: 2026-09-20T14:23:33Z
323
323
  db: homologs
324
324
  read_type: map-ont
@@ -410,7 +410,7 @@ $ gapit screen --r1 tetx_full.fq --db tinyreads --format json
410
410
  "schema": "gapit.reads/1",
411
411
  "tool": {
412
412
  "name": "gapit",
413
- "version": "0.6.3"
413
+ "version": "0.6.4"
414
414
  },
415
415
  "created_at": "2026-09-19T01:12:25Z",
416
416
  "params": {
@@ -505,7 +505,7 @@ $ gapit screen --r1 tetx_lane1.fq,tetx_lane2.fq --db tinyreads --format json --q
505
505
  $ gapit screen --r1 tetx_full.fq --db tinyreads --format md
506
506
  ---
507
507
  schema: gapit.reads/1
508
- tool: gapit 0.6.3
508
+ tool: gapit 0.6.4
509
509
  created_at: 2026-09-19T01:12:25Z
510
510
  db: tinyreads
511
511
  read_type: sr
@@ -605,7 +605,7 @@ Detected 2 present genes in /tmp/gapit-demo/assembly.fa
605
605
  "schema": "gapit.reads/1",
606
606
  "tool": {
607
607
  "name": "gapit",
608
- "version": "0.6.3"
608
+ "version": "0.6.4"
609
609
  },
610
610
  "created_at": "2026-09-19T14:23:00Z",
611
611
  "params": {
@@ -663,7 +663,7 @@ minimap2 一段完全跳过 BLAST 索引,把 assembly 送进 minimap2 引擎
663
663
  性应用一致性与覆盖度下限。
664
664
 
665
665
  真实数字,一株 K. pneumoniae RefSeq assembly(GCF_000240185.1,5.3 Mb,`--db ncbi`,
666
- 单线程,gapit 0.6.3):
666
+ 单线程,gapit 0.6.4):
667
667
 
668
668
  ```console
669
669
  $ # Stage 1: survey, ~0.9 s
@@ -9,7 +9,7 @@ Database setup is covered in [./databases.md](./databases.md); a full walk-throu
9
9
 
10
10
  ## Options
11
11
 
12
- Transcribed from `gapit screen --help` (gapit 0.6.3). Flags marked *reads mode* apply only when
12
+ Transcribed from `gapit screen --help` (gapit 0.6.4). Flags marked *reads mode* apply only when
13
13
  you pass `--r1`/`--r2`; they are documented in [./reads.md](./reads.md).
14
14
 
15
15
  Every option also accepts the single-dash short form listed in the **Short** column (e.g.
@@ -107,7 +107,7 @@ $ gapit screen tests/data/contigs/full.fa --db tinyamr --format json
107
107
  "schema": "gapit.report/1",
108
108
  "tool": {
109
109
  "name": "gapit",
110
- "version": "0.6.3"
110
+ "version": "0.6.4"
111
111
  },
112
112
  "created_at": "2026-09-19T01:12:04Z",
113
113
  "params": {
@@ -199,8 +199,10 @@ progress bar on **stderr** — spinner, the current file's basename, bar, M/N co
199
199
  elapsed time — replacing the per-file `Processing:`/`Found N genes` notes while it runs (the
200
200
  `--jobs × --threads` oversubscription note still prints). Piped or redirected stderr and
201
201
  `--quiet` keep the plain notes byte-identically — progress bars in logs are noise. The bar
202
- lives entirely on stderr: stdout bytes are identical with it on or off. The positional-FASTQ
203
- wildcard batch ([./reads.md](./reads.md)) and `gapit db fetch all` carry the same bar.
202
+ lives entirely on stderr: stdout bytes are identical with it on or off. Before each
203
+ stdout chunk the bar is suspended, so rows start on a clean line and the bar redraws below
204
+ them instead of mixing with the data. The positional-FASTQ wildcard batch
205
+ ([./reads.md](./reads.md)) and `gapit db fetch all` carry the same bar.
204
206
 
205
207
  ### Typed gene databases: designation is a second command
206
208
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## 选项
11
11
 
12
- 转写自 `gapit screen --help`(gapit 0.6.3)。标记为 *reads 模式* 的参数只在传入
12
+ 转写自 `gapit screen --help`(gapit 0.6.4)。标记为 *reads 模式* 的参数只在传入
13
13
  `--r1`/`--r2` 时生效,记录在 [./reads.md](./reads.md)。
14
14
 
15
15
  每个选项都接受 **短** 列给出的单横线短形式(例如 `--db` 的 `-d`);长形式仍是规范写法,
@@ -104,7 +104,7 @@ $ gapit screen tests/data/contigs/full.fa --db tinyamr --format json
104
104
  "schema": "gapit.report/1",
105
105
  "tool": {
106
106
  "name": "gapit",
107
- "version": "0.6.3"
107
+ "version": "0.6.4"
108
108
  },
109
109
  "created_at": "2026-09-19T01:12:04Z",
110
110
  "params": {
@@ -196,8 +196,9 @@ rich 进度条 —— 转轮、当前文件基名、进度条、M/N 计数、百
196
196
  期间取代逐文件的 `Processing:`/`Found N genes` 提示(`--jobs × --threads` 超订用提示
197
197
  仍然打印)。stderr 被管道或重定向、以及 `--quiet` 时,保持与今天逐字节相同的纯文本
198
198
  提示 —— 日志里的进度条只是噪音。进度条完全生存在 stderr 一侧:开与关的 stdout 字节
199
- 完全一致。位置参数 FASTQ 通配符批量([./reads.zh.md](./reads.zh.md))与
200
- `gapit db fetch all` 使用同一条进度条。
199
+ 完全一致。每次写 stdout 数据块前会暂停进度条,因此数据行从干净的新行开始,进度条在
200
+ 其下方重绘,而不是与数据混在同一行。位置参数 FASTQ 通配符批量
201
+ ([./reads.zh.md](./reads.zh.md))与 `gapit db fetch all` 使用同一条进度条。
201
202
 
202
203
  ### typed 基因数据库:判定是第二条命令
203
204
 
@@ -10,7 +10,7 @@ exactly what `gapit screen` writes. See [./screen.md](./screen.md) for producing
10
10
 
11
11
  ## Options
12
12
 
13
- Transcribed from `gapit summary --help` (gapit 0.6.3):
13
+ Transcribed from `gapit summary --help` (gapit 0.6.4):
14
14
 
15
15
  | Flag | Type | Default | Description |
16
16
  |---|---|---|---|
@@ -150,7 +150,7 @@ $ gapit summary tests/data/summary/sample_a.tsv tests/data/summary/sample_b.tsv
150
150
  "schema": "gapit.summary/1",
151
151
  "tool": {
152
152
  "name": "gapit",
153
- "version": "0.6.3"
153
+ "version": "0.6.4"
154
154
  },
155
155
  "created_at": "2026-09-19T01:12:48Z",
156
156
  "params": {
@@ -10,7 +10,7 @@ screen` 写出的格式。如何产生报告见 [./screen.md](./screen.md);输
10
10
 
11
11
  ## 选项
12
12
 
13
- 转写自 `gapit summary --help`(gapit 0.6.3):
13
+ 转写自 `gapit summary --help`(gapit 0.6.4):
14
14
 
15
15
  | 参数 | 类型 | 默认值 | 说明 |
16
16
  |---|---|---|---|
@@ -143,7 +143,7 @@ $ gapit summary tests/data/summary/sample_a.tsv tests/data/summary/sample_b.tsv
143
143
  "schema": "gapit.summary/1",
144
144
  "tool": {
145
145
  "name": "gapit",
146
- "version": "0.6.3"
146
+ "version": "0.6.4"
147
147
  },
148
148
  "created_at": "2026-09-19T01:12:48Z",
149
149
  "params": {
@@ -923,8 +923,8 @@ packages:
923
923
  timestamp: 1694615932610
924
924
  - pypi: ./
925
925
  name: gapit
926
- version: 0.6.3
927
- sha256: d6169fdb74f9fd131a20c1e011fce5a915ff82328f3862c78ae511c7c55758ff
926
+ version: 0.6.4
927
+ sha256: 5a3b9387d4bbec0acf7e69021610599ff52129bc02237f19aba0a79bfa317acd
928
928
  requires_dist:
929
929
  - click>=8.2
930
930
  - pydantic>=2.7
@@ -3,7 +3,7 @@ authors = ["indexofire <indexofire@gmail.com>"]
3
3
  channels = ["conda-forge", "bioconda"]
4
4
  name = "gapit"
5
5
  platforms = ["linux-64"]
6
- version = "0.6.3"
6
+ version = "0.6.4"
7
7
 
8
8
  [tasks]
9
9
  lint = "ruff check"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "gapit"
7
- version = "0.6.3"
7
+ version = "0.6.4"
8
8
  description = "Mass screening of contigs and reads for known genes — agent-first Python reimplementation of abricate"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "indexofire", email = "indexofire@gmail.com" }]
@@ -1,3 +1,3 @@
1
1
  """gapit — agent-first Python reimplementation of abricate."""
2
2
 
3
- __version__ = "0.6.3"
3
+ __version__ = "0.6.4"
@@ -73,8 +73,15 @@ def db_fetch_command(
73
73
  # invocation with no NAME reaches this guard.
74
74
  if name is None:
75
75
  usage_fail("db fetch requires a database NAME or 'all' (see: gapit db list)")
76
- for receipt in perform_fetch(name, datadir, force=force, quiet=quiet, debug=debug):
77
- click.echo(receipt.model_dump_json())
76
+ for _receipt in perform_fetch(
77
+ name,
78
+ datadir,
79
+ force=force,
80
+ quiet=quiet,
81
+ debug=debug,
82
+ emit=lambda receipt: click.echo(receipt.model_dump_json()),
83
+ ):
84
+ pass
78
85
 
79
86
  dispatch(run)
80
87
 
@@ -299,6 +299,7 @@ def screen_command(
299
299
  jobs=jobs,
300
300
  emit=deliver,
301
301
  all_genes=all_genes,
302
+ stdout_emit=output is None,
302
303
  )
303
304
  elif aligner is AlignerEnum.minimap2:
304
305
  if merge_fragments:
@@ -350,6 +351,7 @@ def screen_command(
350
351
  min_gene_id=min_gene_id,
351
352
  min_cluster_cov=min_cluster_cov,
352
353
  emit=deliver,
354
+ stdout_emit=output is None,
353
355
  )
354
356
 
355
357
  dispatch(run)
@@ -7,7 +7,7 @@ the gapit.dblist/1 database listing. The CLI commands
7
7
  callers — this module owns the behavior and imports no CLI plumbing.
8
8
  """
9
9
 
10
- from collections.abc import Iterator, Sequence
10
+ from collections.abc import Callable, Iterator, Sequence
11
11
  from datetime import UTC, datetime
12
12
  from pathlib import Path
13
13
  from typing import Literal
@@ -112,6 +112,7 @@ def perform_fetch(
112
112
  force: bool = False,
113
113
  quiet: bool = True,
114
114
  debug: bool = False,
115
+ emit: Callable[[ProviderReceipt], None] | None = None,
115
116
  ) -> Iterator[ProviderReceipt]:
116
117
  """Fetch database(s) into <datadir>/NAME — the shared CLI + MCP
117
118
  path. NAME ``all`` installs every database in DEFAULT_DBS order; each
@@ -163,6 +164,9 @@ def perform_fetch(
163
164
  bar.describe(provider_name)
164
165
  receipt = fetch_one(provider_name)
165
166
  bar.advance()
167
+ if emit is not None:
168
+ with bar.suspend():
169
+ emit(receipt)
166
170
  yield receipt
167
171
 
168
172