seqpro 0.18.0__tar.gz → 0.19.0__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 (150) hide show
  1. {seqpro-0.18.0 → seqpro-0.19.0}/CHANGELOG.md +12 -0
  2. {seqpro-0.18.0 → seqpro-0.19.0}/Cargo.lock +67 -186
  3. {seqpro-0.18.0 → seqpro-0.19.0}/Cargo.toml +7 -3
  4. {seqpro-0.18.0 → seqpro-0.19.0}/PKG-INFO +1 -1
  5. seqpro-0.19.0/crates/seqpro-core/Cargo.toml +14 -0
  6. seqpro-0.19.0/crates/seqpro-core/src/lib.rs +2 -0
  7. {seqpro-0.18.0 → seqpro-0.19.0/crates/seqpro-core}/src/ragged.rs +198 -0
  8. seqpro-0.19.0/docs/superpowers/plans/2026-06-23-ragged-subclass-getitem.md +426 -0
  9. seqpro-0.19.0/docs/superpowers/specs/2026-06-23-ragged-subclass-getitem-design.md +173 -0
  10. {seqpro-0.18.0 → seqpro-0.19.0}/pyproject.toml +1 -1
  11. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_core.py +2 -2
  12. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_ops.py +23 -113
  13. {seqpro-0.18.0 → seqpro-0.19.0}/src/lib.rs +50 -9
  14. seqpro-0.19.0/src/ragged.rs +1 -0
  15. {seqpro-0.18.0 → seqpro-0.19.0}/src/translate.rs +8 -5
  16. {seqpro-0.18.0 → seqpro-0.19.0}/.claude/skills/zensical/SKILL.md +0 -0
  17. {seqpro-0.18.0 → seqpro-0.19.0}/.gitattributes +0 -0
  18. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/bench.yaml +0 -0
  19. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/bump.yaml +0 -0
  20. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/docs.yml +0 -0
  21. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/lint.yaml +0 -0
  22. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/merge.yaml +0 -0
  23. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/publish.yaml +0 -0
  24. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/release-pipeline.yaml +0 -0
  25. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/release.yaml +0 -0
  26. {seqpro-0.18.0 → seqpro-0.19.0}/.github/workflows/test.yaml +0 -0
  27. {seqpro-0.18.0 → seqpro-0.19.0}/.gitignore +0 -0
  28. {seqpro-0.18.0 → seqpro-0.19.0}/.pre-commit-config.yaml +0 -0
  29. {seqpro-0.18.0 → seqpro-0.19.0}/CLAUDE.md +0 -0
  30. {seqpro-0.18.0 → seqpro-0.19.0}/LICENSE +0 -0
  31. {seqpro-0.18.0 → seqpro-0.19.0}/README.md +0 -0
  32. {seqpro-0.18.0 → seqpro-0.19.0}/benches/bench_tokenize_translate.py +0 -0
  33. {seqpro-0.18.0 → seqpro-0.19.0}/benches/kshuffle.rs +0 -0
  34. {seqpro-0.18.0 → seqpro-0.19.0}/benchmarks/bench_ragged_backends.py +0 -0
  35. {seqpro-0.18.0 → seqpro-0.19.0}/benchmarks/bench_to_packed.py +0 -0
  36. {seqpro-0.18.0 → seqpro-0.19.0}/docs/api/alphabets.md +0 -0
  37. {seqpro-0.18.0 → seqpro-0.19.0}/docs/api/bed.md +0 -0
  38. {seqpro-0.18.0 → seqpro-0.19.0}/docs/api/gtf.md +0 -0
  39. {seqpro-0.18.0 → seqpro-0.19.0}/docs/api/index.md +0 -0
  40. {seqpro-0.18.0 → seqpro-0.19.0}/docs/api/ragged.md +0 -0
  41. {seqpro-0.18.0 → seqpro-0.19.0}/docs/api/types.md +0 -0
  42. {seqpro-0.18.0 → seqpro-0.19.0}/docs/index.md +0 -0
  43. {seqpro-0.18.0 → seqpro-0.19.0}/docs/ragged.md +0 -0
  44. {seqpro-0.18.0 → seqpro-0.19.0}/docs/roadmap/rust-ragged.md +0 -0
  45. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-04-ragged-record-array.md +0 -0
  46. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-05-documentation-site.md +0 -0
  47. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-05-narwhals-coord-schema.md +0 -0
  48. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-05-ragged-zip-and-record-introspection.md +0 -0
  49. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-20-kshuffle-optimization.md +0 -0
  50. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-20-kshuffle-pooled-buffers-and-k2-fast-path.md +0 -0
  51. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-20-kshuffle-wilson-single-pass.md +0 -0
  52. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-20-release-pipeline.md +0 -0
  53. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-28-translate-lut-validation.md +0 -0
  54. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-31-flat-buffer-to-padded.md +0 -0
  55. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-05-31-rag-to-packed.md +0 -0
  56. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-05-translate-unknown-codon-policy.md +0 -0
  57. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-12-tokenize-lut-codspeed.md +0 -0
  58. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-18-rust-tokenize-translate.md +0 -0
  59. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-19-rust-ragged-core.md +0 -0
  60. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-20-rust-ragged-records.md +0 -0
  61. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-20-rust-ragged-spec-c.md +0 -0
  62. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-21-ragged-throughput-gate.md +0 -0
  63. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/plans/2026-06-21-rust-ragged-consumer-audit.md +0 -0
  64. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-04-ragged-record-array-design.md +0 -0
  65. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-05-documentation-site-design.md +0 -0
  66. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-05-narwhals-coord-schema-design.md +0 -0
  67. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-05-ragged-zip-and-record-introspection-design.md +0 -0
  68. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-20-kshuffle-optimization-design.md +0 -0
  69. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-20-kshuffle-pooled-buffers-and-k2-fast-path-design.md +0 -0
  70. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-20-kshuffle-wilson-single-pass-design.md +0 -0
  71. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-20-release-pipeline-design.md +0 -0
  72. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-28-translate-lut-and-validation-design.md +0 -0
  73. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-31-flat-buffer-to-padded-design.md +0 -0
  74. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-05-31-rag-to-packed-design.md +0 -0
  75. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-05-translate-unknown-codon-policy-design.md +0 -0
  76. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-12-tokenize-lut-codspeed-design.md +0 -0
  77. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-18-rust-tokenize-translate-design.md +0 -0
  78. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-19-rust-ragged-core-design.md +0 -0
  79. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-20-rust-ragged-nested-design.md +0 -0
  80. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-20-rust-ragged-records-design.md +0 -0
  81. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-21-ragged-throughput-gate-design.md +0 -0
  82. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-21-rust-ragged-audit-ledger.md +0 -0
  83. {seqpro-0.18.0 → seqpro-0.19.0}/docs/superpowers/specs/2026-06-21-rust-ragged-consumer-audit-design.md +0 -0
  84. {seqpro-0.18.0 → seqpro-0.19.0}/meta.yaml +0 -0
  85. {seqpro-0.18.0 → seqpro-0.19.0}/pixi.lock +0 -0
  86. {seqpro-0.18.0 → seqpro-0.19.0}/pixi.toml +0 -0
  87. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/__init__.py +0 -0
  88. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_analyzers.py +0 -0
  89. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_cleaners.py +0 -0
  90. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_coords.py +0 -0
  91. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_encoders.py +0 -0
  92. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_modifiers.py +0 -0
  93. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_numba.py +0 -0
  94. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_types.py +0 -0
  95. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/_utils.py +0 -0
  96. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/alphabets/__init__.py +0 -0
  97. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/alphabets/_alphabets.py +0 -0
  98. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/bed.py +0 -0
  99. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/experimental/_experimental.py +0 -0
  100. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/experimental/_visualizers.py +0 -0
  101. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/gtf.py +0 -0
  102. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/py.typed +0 -0
  103. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/__init__.py +0 -0
  104. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_ak_interop.py +0 -0
  105. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_ingest.py +0 -0
  106. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_layout.py +0 -0
  107. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_types.py +0 -0
  108. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/rag/_utils.py +0 -0
  109. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/transforms/__init__.py +0 -0
  110. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/transforms/augmentation.py +0 -0
  111. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/transforms/tmm.py +0 -0
  112. {seqpro-0.18.0 → seqpro-0.19.0}/python/seqpro/xr/__init__.py +0 -0
  113. {seqpro-0.18.0 → seqpro-0.19.0}/scratch_bench_rc.py +0 -0
  114. {seqpro-0.18.0 → seqpro-0.19.0}/scratch_bench_to_padded.py +0 -0
  115. {seqpro-0.18.0 → seqpro-0.19.0}/skills/seqpro/SKILL.md +0 -0
  116. {seqpro-0.18.0 → seqpro-0.19.0}/src/kmer_encode.rs +0 -0
  117. {seqpro-0.18.0 → seqpro-0.19.0}/src/kshuffle.rs +0 -0
  118. {seqpro-0.18.0 → seqpro-0.19.0}/src/kshuffle_ref.rs +0 -0
  119. {seqpro-0.18.0 → seqpro-0.19.0}/tests/_shape_fixtures.py +0 -0
  120. {seqpro-0.18.0 → seqpro-0.19.0}/tests/bed/test_pyranges.py +0 -0
  121. {seqpro-0.18.0 → seqpro-0.19.0}/tests/bed/test_read.py +0 -0
  122. {seqpro-0.18.0 → seqpro-0.19.0}/tests/bed/test_sort.py +0 -0
  123. {seqpro-0.18.0 → seqpro-0.19.0}/tests/bed/test_with_length.py +0 -0
  124. {seqpro-0.18.0 → seqpro-0.19.0}/tests/bench_translate_lut.py +0 -0
  125. {seqpro-0.18.0 → seqpro-0.19.0}/tests/conftest.py +0 -0
  126. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_analyzers.py +0 -0
  127. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_bench_tokenize.py +0 -0
  128. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_concatenate.py +0 -0
  129. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_coords.py +0 -0
  130. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_core_ragged_surface.py +0 -0
  131. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_encoders.py +0 -0
  132. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ingest.py +0 -0
  133. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_modifiers.py +0 -0
  134. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ohe.py +0 -0
  135. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_rag_to_packed.py +0 -0
  136. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged.py +0 -0
  137. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_core.py +0 -0
  138. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_core_records.py +0 -0
  139. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_nested_consumers.py +0 -0
  140. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_nested_diff.py +0 -0
  141. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_rc.py +0 -0
  142. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_record_indexing.py +0 -0
  143. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_subclass.py +0 -0
  144. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_ragged_to_padded.py +0 -0
  145. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_shape_matrix.py +0 -0
  146. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_tokenize.py +0 -0
  147. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_transforms.py +0 -0
  148. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_translate.py +0 -0
  149. {seqpro-0.18.0 → seqpro-0.19.0}/tests/test_translate_rust.py +0 -0
  150. {seqpro-0.18.0 → seqpro-0.19.0}/zensical.toml +0 -0
@@ -1,3 +1,15 @@
1
+ ## 0.19.0 (2026-06-23)
2
+
3
+ ### Feat
4
+
5
+ - **rag**: port reverse_complement to seqpro-core Rust; rag layer numba-free
6
+ - **rag**: port to_padded to seqpro-core Rust, drop numba kernel
7
+
8
+ ### Refactor
9
+
10
+ - **rag**: truthful _ops docstring; guard reverse_complement_inplace empty offsets
11
+ - **rust**: extract pyo3-free seqpro-core crate owning the Ragged layout
12
+
1
13
  ## 0.18.0 (2026-06-23)
2
14
 
3
15
  ### Feat
@@ -59,12 +59,6 @@ version = "0.8.0"
59
59
  source = "registry+https://github.com/rust-lang/crates.io-index"
60
60
  checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
61
61
 
62
- [[package]]
63
- name = "bitflags"
64
- version = "1.3.2"
65
- source = "registry+https://github.com/rust-lang/crates.io-index"
66
- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
67
-
68
62
  [[package]]
69
63
  name = "bitflags"
70
64
  version = "2.11.1"
@@ -470,12 +464,6 @@ version = "0.17.1"
470
464
  source = "registry+https://github.com/rust-lang/crates.io-index"
471
465
  checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
472
466
 
473
- [[package]]
474
- name = "heck"
475
- version = "0.4.1"
476
- source = "registry+https://github.com/rust-lang/crates.io-index"
477
- checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
478
-
479
467
  [[package]]
480
468
  name = "heck"
481
469
  version = "0.5.0"
@@ -512,12 +500,6 @@ dependencies = [
512
500
  "serde_core",
513
501
  ]
514
502
 
515
- [[package]]
516
- name = "indoc"
517
- version = "2.0.4"
518
- source = "registry+https://github.com/rust-lang/crates.io-index"
519
- checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
520
-
521
503
  [[package]]
522
504
  name = "is-terminal"
523
505
  version = "0.4.17"
@@ -579,16 +561,6 @@ version = "0.12.1"
579
561
  source = "registry+https://github.com/rust-lang/crates.io-index"
580
562
  checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
581
563
 
582
- [[package]]
583
- name = "lock_api"
584
- version = "0.4.11"
585
- source = "registry+https://github.com/rust-lang/crates.io-index"
586
- checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
587
- dependencies = [
588
- "autocfg",
589
- "scopeguard",
590
- ]
591
-
592
564
  [[package]]
593
565
  name = "log"
594
566
  version = "0.4.29"
@@ -611,25 +583,18 @@ version = "2.8.0"
611
583
  source = "registry+https://github.com/rust-lang/crates.io-index"
612
584
  checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
613
585
 
614
- [[package]]
615
- name = "memoffset"
616
- version = "0.9.0"
617
- source = "registry+https://github.com/rust-lang/crates.io-index"
618
- checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
619
- dependencies = [
620
- "autocfg",
621
- ]
622
-
623
586
  [[package]]
624
587
  name = "ndarray"
625
- version = "0.15.6"
588
+ version = "0.17.2"
626
589
  source = "registry+https://github.com/rust-lang/crates.io-index"
627
- checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
590
+ checksum = "520080814a7a6b4a6e9070823bb24b4531daac8c4627e08ba5de8c5ef2f2752d"
628
591
  dependencies = [
629
592
  "matrixmultiply",
630
593
  "num-complex",
631
594
  "num-integer",
632
595
  "num-traits",
596
+ "portable-atomic",
597
+ "portable-atomic-util",
633
598
  "rawpointer",
634
599
  "rayon",
635
600
  ]
@@ -640,7 +605,7 @@ version = "0.31.3"
640
605
  source = "registry+https://github.com/rust-lang/crates.io-index"
641
606
  checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
642
607
  dependencies = [
643
- "bitflags 2.11.1",
608
+ "bitflags",
644
609
  "cfg-if",
645
610
  "cfg_aliases",
646
611
  "libc",
@@ -676,9 +641,9 @@ dependencies = [
676
641
 
677
642
  [[package]]
678
643
  name = "numpy"
679
- version = "0.20.0"
644
+ version = "0.28.0"
680
645
  source = "registry+https://github.com/rust-lang/crates.io-index"
681
- checksum = "bef41cbb417ea83b30525259e30ccef6af39b31c240bda578889494c5392d331"
646
+ checksum = "778da78c64ddc928ebf5ad9df5edf0789410ff3bdbf3619aed51cd789a6af1e2"
682
647
  dependencies = [
683
648
  "libc",
684
649
  "ndarray",
@@ -686,14 +651,15 @@ dependencies = [
686
651
  "num-integer",
687
652
  "num-traits",
688
653
  "pyo3",
654
+ "pyo3-build-config",
689
655
  "rustc-hash",
690
656
  ]
691
657
 
692
658
  [[package]]
693
659
  name = "once_cell"
694
- version = "1.19.0"
660
+ version = "1.21.4"
695
661
  source = "registry+https://github.com/rust-lang/crates.io-index"
696
- checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
662
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
697
663
 
698
664
  [[package]]
699
665
  name = "oorandom"
@@ -701,29 +667,6 @@ version = "11.1.5"
701
667
  source = "registry+https://github.com/rust-lang/crates.io-index"
702
668
  checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
703
669
 
704
- [[package]]
705
- name = "parking_lot"
706
- version = "0.12.1"
707
- source = "registry+https://github.com/rust-lang/crates.io-index"
708
- checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
709
- dependencies = [
710
- "lock_api",
711
- "parking_lot_core",
712
- ]
713
-
714
- [[package]]
715
- name = "parking_lot_core"
716
- version = "0.9.9"
717
- source = "registry+https://github.com/rust-lang/crates.io-index"
718
- checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
719
- dependencies = [
720
- "cfg-if",
721
- "libc",
722
- "redox_syscall",
723
- "smallvec",
724
- "windows-targets 0.48.5",
725
- ]
726
-
727
670
  [[package]]
728
671
  name = "pin-project-lite"
729
672
  version = "0.2.17"
@@ -758,6 +701,21 @@ dependencies = [
758
701
  "plotters-backend",
759
702
  ]
760
703
 
704
+ [[package]]
705
+ name = "portable-atomic"
706
+ version = "1.13.1"
707
+ source = "registry+https://github.com/rust-lang/crates.io-index"
708
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
709
+
710
+ [[package]]
711
+ name = "portable-atomic-util"
712
+ version = "0.2.7"
713
+ source = "registry+https://github.com/rust-lang/crates.io-index"
714
+ checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
715
+ dependencies = [
716
+ "portable-atomic",
717
+ ]
718
+
761
719
  [[package]]
762
720
  name = "ppv-lite86"
763
721
  version = "0.2.17"
@@ -791,7 +749,7 @@ checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744"
791
749
  dependencies = [
792
750
  "bit-set",
793
751
  "bit-vec",
794
- "bitflags 2.11.1",
752
+ "bitflags",
795
753
  "num-traits",
796
754
  "rand 0.9.4",
797
755
  "rand_chacha 0.9.0",
@@ -804,36 +762,32 @@ dependencies = [
804
762
 
805
763
  [[package]]
806
764
  name = "pyo3"
807
- version = "0.20.1"
765
+ version = "0.28.3"
808
766
  source = "registry+https://github.com/rust-lang/crates.io-index"
809
- checksum = "e82ad98ce1991c9c70c3464ba4187337b9c45fcbbb060d46dca15f0c075e14e2"
767
+ checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
810
768
  dependencies = [
811
- "cfg-if",
812
- "indoc",
813
769
  "libc",
814
- "memoffset",
815
- "parking_lot",
770
+ "once_cell",
771
+ "portable-atomic",
816
772
  "pyo3-build-config",
817
773
  "pyo3-ffi",
818
774
  "pyo3-macros",
819
- "unindent",
820
775
  ]
821
776
 
822
777
  [[package]]
823
778
  name = "pyo3-build-config"
824
- version = "0.20.1"
779
+ version = "0.28.3"
825
780
  source = "registry+https://github.com/rust-lang/crates.io-index"
826
- checksum = "5503d0b3aee2c7a8dbb389cd87cd9649f675d4c7f60ca33699a3e3859d81a891"
781
+ checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
827
782
  dependencies = [
828
- "once_cell",
829
783
  "target-lexicon",
830
784
  ]
831
785
 
832
786
  [[package]]
833
787
  name = "pyo3-ffi"
834
- version = "0.20.1"
788
+ version = "0.28.3"
835
789
  source = "registry+https://github.com/rust-lang/crates.io-index"
836
- checksum = "18a79e8d80486a00d11c0dcb27cd2aa17c022cc95c677b461f01797226ba8f41"
790
+ checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
837
791
  dependencies = [
838
792
  "libc",
839
793
  "pyo3-build-config",
@@ -841,9 +795,9 @@ dependencies = [
841
795
 
842
796
  [[package]]
843
797
  name = "pyo3-macros"
844
- version = "0.20.1"
798
+ version = "0.28.3"
845
799
  source = "registry+https://github.com/rust-lang/crates.io-index"
846
- checksum = "1f4b0dc7eaa578604fab11c8c7ff8934c71249c61d4def8e272c76ed879f03d4"
800
+ checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
847
801
  dependencies = [
848
802
  "proc-macro2",
849
803
  "pyo3-macros-backend",
@@ -853,12 +807,13 @@ dependencies = [
853
807
 
854
808
  [[package]]
855
809
  name = "pyo3-macros-backend"
856
- version = "0.20.1"
810
+ version = "0.28.3"
857
811
  source = "registry+https://github.com/rust-lang/crates.io-index"
858
- checksum = "816a4f709e29ddab2e3cdfe94600d554c5556cad0ddfeea95c47b580c3247fa4"
812
+ checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
859
813
  dependencies = [
860
- "heck 0.4.1",
814
+ "heck",
861
815
  "proc-macro2",
816
+ "pyo3-build-config",
862
817
  "quote",
863
818
  "syn 2.0.106",
864
819
  ]
@@ -984,15 +939,6 @@ dependencies = [
984
939
  "crossbeam-utils",
985
940
  ]
986
941
 
987
- [[package]]
988
- name = "redox_syscall"
989
- version = "0.4.1"
990
- source = "registry+https://github.com/rust-lang/crates.io-index"
991
- checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
992
- dependencies = [
993
- "bitflags 1.3.2",
994
- ]
995
-
996
942
  [[package]]
997
943
  name = "regex"
998
944
  version = "1.12.3"
@@ -1024,9 +970,9 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
1024
970
 
1025
971
  [[package]]
1026
972
  name = "rustc-hash"
1027
- version = "1.1.0"
973
+ version = "2.1.2"
1028
974
  source = "registry+https://github.com/rust-lang/crates.io-index"
1029
- checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
975
+ checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
1030
976
 
1031
977
  [[package]]
1032
978
  name = "rustix"
@@ -1034,7 +980,7 @@ version = "1.1.4"
1034
980
  source = "registry+https://github.com/rust-lang/crates.io-index"
1035
981
  checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
1036
982
  dependencies = [
1037
- "bitflags 2.11.1",
983
+ "bitflags",
1038
984
  "errno",
1039
985
  "libc",
1040
986
  "linux-raw-sys",
@@ -1068,12 +1014,6 @@ dependencies = [
1068
1014
  "winapi-util",
1069
1015
  ]
1070
1016
 
1071
- [[package]]
1072
- name = "scopeguard"
1073
- version = "1.2.0"
1074
- source = "registry+https://github.com/rust-lang/crates.io-index"
1075
- checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1076
-
1077
1017
  [[package]]
1078
1018
  name = "semver"
1079
1019
  version = "1.0.28"
@@ -1093,10 +1033,20 @@ dependencies = [
1093
1033
  "pyo3",
1094
1034
  "rand 0.8.5",
1095
1035
  "rayon",
1036
+ "seqpro-core",
1096
1037
  "thiserror",
1097
1038
  "xxhash-rust",
1098
1039
  ]
1099
1040
 
1041
+ [[package]]
1042
+ name = "seqpro-core"
1043
+ version = "0.1.0"
1044
+ dependencies = [
1045
+ "ndarray",
1046
+ "proptest",
1047
+ "rayon",
1048
+ ]
1049
+
1100
1050
  [[package]]
1101
1051
  name = "serde"
1102
1052
  version = "1.0.228"
@@ -1152,12 +1102,6 @@ version = "0.4.12"
1152
1102
  source = "registry+https://github.com/rust-lang/crates.io-index"
1153
1103
  checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
1154
1104
 
1155
- [[package]]
1156
- name = "smallvec"
1157
- version = "1.11.2"
1158
- source = "registry+https://github.com/rust-lang/crates.io-index"
1159
- checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
1160
-
1161
1105
  [[package]]
1162
1106
  name = "statrs"
1163
1107
  version = "0.18.0"
@@ -1198,9 +1142,9 @@ dependencies = [
1198
1142
 
1199
1143
  [[package]]
1200
1144
  name = "target-lexicon"
1201
- version = "0.12.12"
1145
+ version = "0.13.5"
1202
1146
  source = "registry+https://github.com/rust-lang/crates.io-index"
1203
- checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
1147
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
1204
1148
 
1205
1149
  [[package]]
1206
1150
  name = "tempfile"
@@ -1263,12 +1207,6 @@ version = "0.2.6"
1263
1207
  source = "registry+https://github.com/rust-lang/crates.io-index"
1264
1208
  checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
1265
1209
 
1266
- [[package]]
1267
- name = "unindent"
1268
- version = "0.2.3"
1269
- source = "registry+https://github.com/rust-lang/crates.io-index"
1270
- checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
1271
-
1272
1210
  [[package]]
1273
1211
  name = "wait-timeout"
1274
1212
  version = "0.2.1"
@@ -1385,7 +1323,7 @@ version = "0.244.0"
1385
1323
  source = "registry+https://github.com/rust-lang/crates.io-index"
1386
1324
  checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
1387
1325
  dependencies = [
1388
- "bitflags 2.11.1",
1326
+ "bitflags",
1389
1327
  "hashbrown 0.15.5",
1390
1328
  "indexmap",
1391
1329
  "semver",
@@ -1422,7 +1360,7 @@ version = "0.59.0"
1422
1360
  source = "registry+https://github.com/rust-lang/crates.io-index"
1423
1361
  checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
1424
1362
  dependencies = [
1425
- "windows-targets 0.52.6",
1363
+ "windows-targets",
1426
1364
  ]
1427
1365
 
1428
1366
  [[package]]
@@ -1434,67 +1372,34 @@ dependencies = [
1434
1372
  "windows-link",
1435
1373
  ]
1436
1374
 
1437
- [[package]]
1438
- name = "windows-targets"
1439
- version = "0.48.5"
1440
- source = "registry+https://github.com/rust-lang/crates.io-index"
1441
- checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
1442
- dependencies = [
1443
- "windows_aarch64_gnullvm 0.48.5",
1444
- "windows_aarch64_msvc 0.48.5",
1445
- "windows_i686_gnu 0.48.5",
1446
- "windows_i686_msvc 0.48.5",
1447
- "windows_x86_64_gnu 0.48.5",
1448
- "windows_x86_64_gnullvm 0.48.5",
1449
- "windows_x86_64_msvc 0.48.5",
1450
- ]
1451
-
1452
1375
  [[package]]
1453
1376
  name = "windows-targets"
1454
1377
  version = "0.52.6"
1455
1378
  source = "registry+https://github.com/rust-lang/crates.io-index"
1456
1379
  checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
1457
1380
  dependencies = [
1458
- "windows_aarch64_gnullvm 0.52.6",
1459
- "windows_aarch64_msvc 0.52.6",
1460
- "windows_i686_gnu 0.52.6",
1381
+ "windows_aarch64_gnullvm",
1382
+ "windows_aarch64_msvc",
1383
+ "windows_i686_gnu",
1461
1384
  "windows_i686_gnullvm",
1462
- "windows_i686_msvc 0.52.6",
1463
- "windows_x86_64_gnu 0.52.6",
1464
- "windows_x86_64_gnullvm 0.52.6",
1465
- "windows_x86_64_msvc 0.52.6",
1385
+ "windows_i686_msvc",
1386
+ "windows_x86_64_gnu",
1387
+ "windows_x86_64_gnullvm",
1388
+ "windows_x86_64_msvc",
1466
1389
  ]
1467
1390
 
1468
- [[package]]
1469
- name = "windows_aarch64_gnullvm"
1470
- version = "0.48.5"
1471
- source = "registry+https://github.com/rust-lang/crates.io-index"
1472
- checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
1473
-
1474
1391
  [[package]]
1475
1392
  name = "windows_aarch64_gnullvm"
1476
1393
  version = "0.52.6"
1477
1394
  source = "registry+https://github.com/rust-lang/crates.io-index"
1478
1395
  checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
1479
1396
 
1480
- [[package]]
1481
- name = "windows_aarch64_msvc"
1482
- version = "0.48.5"
1483
- source = "registry+https://github.com/rust-lang/crates.io-index"
1484
- checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
1485
-
1486
1397
  [[package]]
1487
1398
  name = "windows_aarch64_msvc"
1488
1399
  version = "0.52.6"
1489
1400
  source = "registry+https://github.com/rust-lang/crates.io-index"
1490
1401
  checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
1491
1402
 
1492
- [[package]]
1493
- name = "windows_i686_gnu"
1494
- version = "0.48.5"
1495
- source = "registry+https://github.com/rust-lang/crates.io-index"
1496
- checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
1497
-
1498
1403
  [[package]]
1499
1404
  name = "windows_i686_gnu"
1500
1405
  version = "0.52.6"
@@ -1507,48 +1412,24 @@ version = "0.52.6"
1507
1412
  source = "registry+https://github.com/rust-lang/crates.io-index"
1508
1413
  checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
1509
1414
 
1510
- [[package]]
1511
- name = "windows_i686_msvc"
1512
- version = "0.48.5"
1513
- source = "registry+https://github.com/rust-lang/crates.io-index"
1514
- checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
1515
-
1516
1415
  [[package]]
1517
1416
  name = "windows_i686_msvc"
1518
1417
  version = "0.52.6"
1519
1418
  source = "registry+https://github.com/rust-lang/crates.io-index"
1520
1419
  checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
1521
1420
 
1522
- [[package]]
1523
- name = "windows_x86_64_gnu"
1524
- version = "0.48.5"
1525
- source = "registry+https://github.com/rust-lang/crates.io-index"
1526
- checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
1527
-
1528
1421
  [[package]]
1529
1422
  name = "windows_x86_64_gnu"
1530
1423
  version = "0.52.6"
1531
1424
  source = "registry+https://github.com/rust-lang/crates.io-index"
1532
1425
  checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
1533
1426
 
1534
- [[package]]
1535
- name = "windows_x86_64_gnullvm"
1536
- version = "0.48.5"
1537
- source = "registry+https://github.com/rust-lang/crates.io-index"
1538
- checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
1539
-
1540
1427
  [[package]]
1541
1428
  name = "windows_x86_64_gnullvm"
1542
1429
  version = "0.52.6"
1543
1430
  source = "registry+https://github.com/rust-lang/crates.io-index"
1544
1431
  checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
1545
1432
 
1546
- [[package]]
1547
- name = "windows_x86_64_msvc"
1548
- version = "0.48.5"
1549
- source = "registry+https://github.com/rust-lang/crates.io-index"
1550
- checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
1551
-
1552
1433
  [[package]]
1553
1434
  name = "windows_x86_64_msvc"
1554
1435
  version = "0.52.6"
@@ -1577,7 +1458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1577
1458
  checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
1578
1459
  dependencies = [
1579
1460
  "anyhow",
1580
- "heck 0.5.0",
1461
+ "heck",
1581
1462
  "wit-parser",
1582
1463
  ]
1583
1464
 
@@ -1588,7 +1469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1588
1469
  checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
1589
1470
  dependencies = [
1590
1471
  "anyhow",
1591
- "heck 0.5.0",
1472
+ "heck",
1592
1473
  "indexmap",
1593
1474
  "prettyplease",
1594
1475
  "syn 2.0.106",
@@ -1619,7 +1500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1619
1500
  checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
1620
1501
  dependencies = [
1621
1502
  "anyhow",
1622
- "bitflags 2.11.1",
1503
+ "bitflags",
1623
1504
  "indexmap",
1624
1505
  "log",
1625
1506
  "serde",
@@ -1,3 +1,6 @@
1
+ [workspace]
2
+ members = ["crates/seqpro-core"]
3
+
1
4
  [package]
2
5
  name = "seqpro"
3
6
  version = "0.1.0"
@@ -11,16 +14,17 @@ name = "seqpro"
11
14
  crate-type = ["cdylib", "rlib"]
12
15
 
13
16
  [dependencies]
17
+ seqpro-core = { path = "crates/seqpro-core" }
14
18
  anyhow = "1.0.99"
15
- ndarray = { version = "0.15.6", features = ["rayon"] }
16
- numpy = "0.20.0"
19
+ ndarray = { version = "0.17", features = ["rayon"] }
20
+ numpy = "0.28.0"
17
21
  rand = { version = "0.8.5", features = ["small_rng"] }
18
22
  rayon = "1.11.0"
19
23
  thiserror = "1.0.69"
20
24
  xxhash-rust = { version = "0.8.15", features = ["xxh3"] }
21
25
 
22
26
  [dependencies.pyo3]
23
- version = "0.20"
27
+ version = "0.28"
24
28
  features = ["abi3-py39"]
25
29
 
26
30
  [dev-dependencies]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seqpro
3
- Version: 0.18.0
3
+ Version: 0.19.0
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -0,0 +1,14 @@
1
+ [package]
2
+ name = "seqpro-core"
3
+ version = "0.1.0"
4
+ edition = "2021"
5
+
6
+ [lib]
7
+ name = "seqpro_core"
8
+
9
+ [dependencies]
10
+ ndarray = { version = "0.17", features = ["rayon"] }
11
+ rayon = "1.11.0"
12
+
13
+ [dev-dependencies]
14
+ proptest = "1.4"
@@ -0,0 +1,2 @@
1
+ pub mod ragged;
2
+ pub use ragged::Ragged;