sdfrust 0.5.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 (56) hide show
  1. sdfrust-0.5.0/.gitignore +23 -0
  2. sdfrust-0.5.0/CHANGELOG.md +62 -0
  3. sdfrust-0.5.0/Cargo.lock +1270 -0
  4. sdfrust-0.5.0/Cargo.toml +55 -0
  5. sdfrust-0.5.0/LICENSE +21 -0
  6. sdfrust-0.5.0/PKG-INFO +251 -0
  7. sdfrust-0.5.0/README.md +290 -0
  8. sdfrust-0.5.0/examples/basic_usage.rs +157 -0
  9. sdfrust-0.5.0/examples/benchmark.rs +284 -0
  10. sdfrust-0.5.0/examples/parse_molecules.rs +189 -0
  11. sdfrust-0.5.0/pyproject.toml +44 -0
  12. sdfrust-0.5.0/python/sdfrust/__init__.py +162 -0
  13. sdfrust-0.5.0/python/sdfrust/py.typed +0 -0
  14. sdfrust-0.5.0/sdfrust-python/.gitignore +35 -0
  15. sdfrust-0.5.0/sdfrust-python/Cargo.toml +26 -0
  16. sdfrust-0.5.0/sdfrust-python/LICENSE +21 -0
  17. sdfrust-0.5.0/sdfrust-python/README.md +219 -0
  18. sdfrust-0.5.0/sdfrust-python/examples/README.md +82 -0
  19. sdfrust-0.5.0/sdfrust-python/examples/basic_usage.py +531 -0
  20. sdfrust-0.5.0/sdfrust-python/src/atom.rs +184 -0
  21. sdfrust-0.5.0/sdfrust-python/src/bond.rs +487 -0
  22. sdfrust-0.5.0/sdfrust-python/src/error.rs +63 -0
  23. sdfrust-0.5.0/sdfrust-python/src/iterators.rs +273 -0
  24. sdfrust-0.5.0/sdfrust-python/src/lib.rs +150 -0
  25. sdfrust-0.5.0/sdfrust-python/src/molecule.rs +831 -0
  26. sdfrust-0.5.0/sdfrust-python/src/parsing.rs +543 -0
  27. sdfrust-0.5.0/sdfrust-python/src/writing.rs +188 -0
  28. sdfrust-0.5.0/sdfrust-python/tests/test_basic.py +483 -0
  29. sdfrust-0.5.0/sdfrust-python/tests/test_geometry.py +218 -0
  30. sdfrust-0.5.0/sdfrust-python/tests/test_gzip.py +257 -0
  31. sdfrust-0.5.0/src/atom.rs +106 -0
  32. sdfrust-0.5.0/src/bond.rs +164 -0
  33. sdfrust-0.5.0/src/collection.rs +121 -0
  34. sdfrust-0.5.0/src/descriptors/elements.rs +374 -0
  35. sdfrust-0.5.0/src/descriptors/mod.rs +42 -0
  36. sdfrust-0.5.0/src/descriptors/molecular.rs +276 -0
  37. sdfrust-0.5.0/src/descriptors/topological.rs +581 -0
  38. sdfrust-0.5.0/src/error.rs +59 -0
  39. sdfrust-0.5.0/src/geometry/distance.rs +102 -0
  40. sdfrust-0.5.0/src/geometry/mod.rs +241 -0
  41. sdfrust-0.5.0/src/geometry/rmsd.rs +161 -0
  42. sdfrust-0.5.0/src/geometry/transform.rs +291 -0
  43. sdfrust-0.5.0/src/lib.rs +482 -0
  44. sdfrust-0.5.0/src/molecule.rs +418 -0
  45. sdfrust-0.5.0/src/parser/compression.rs +124 -0
  46. sdfrust-0.5.0/src/parser/mod.rs +32 -0
  47. sdfrust-0.5.0/src/parser/mol2.rs +688 -0
  48. sdfrust-0.5.0/src/parser/sdf.rs +1070 -0
  49. sdfrust-0.5.0/src/parser/sdf_v3000.rs +1125 -0
  50. sdfrust-0.5.0/src/parser/xyz.rs +555 -0
  51. sdfrust-0.5.0/src/sgroup.rs +175 -0
  52. sdfrust-0.5.0/src/stereogroup.rs +92 -0
  53. sdfrust-0.5.0/src/writer/mod.rs +15 -0
  54. sdfrust-0.5.0/src/writer/mol2.rs +305 -0
  55. sdfrust-0.5.0/src/writer/sdf.rs +178 -0
  56. sdfrust-0.5.0/src/writer/sdf_v3000.rs +391 -0
@@ -0,0 +1,23 @@
1
+ # Generated by Cargo
2
+ /target/
3
+
4
+ # Cargo.lock for libraries (not binaries)
5
+ Cargo.lock
6
+
7
+ # IDE
8
+ .idea/
9
+ .vscode/
10
+ *.swp
11
+ *.swo
12
+
13
+ # OS
14
+ .DS_Store
15
+ Thumbs.db
16
+
17
+ # Test artifacts
18
+ *.tmp
19
+
20
+ # Benchmark generated data
21
+ benches/data/*.sdf
22
+ benches/comparison/.venv/
23
+ benches/comparison/results/
@@ -0,0 +1,62 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.5.0] - 2026-02-17
11
+
12
+ ### Added
13
+
14
+ - Transparent gzip decompression for all file parsers (optional `gzip` feature)
15
+ - XYZ format parser with streaming support, atomic number input, and case normalization
16
+ - XYZ auto-detection in `parse_auto_*()` and `iter_auto_file()`
17
+ - Python bindings for XYZ parsing and gzip support
18
+ - PDBbind 2024 large-scale SDF benchmark test (27,670 files, 100% success rate, ~14k files/sec)
19
+
20
+ ## [0.4.0] - 2026-01-30
21
+
22
+ ### Added
23
+
24
+ - Python bindings via PyO3 (`sdfrust-python/` crate) with full API coverage
25
+ - NumPy integration for coordinate and atomic number arrays
26
+ - Streaming iterators for Python (`iter_sdf_file`, `iter_mol2_file`)
27
+ - Workspace configuration for multi-crate build
28
+
29
+ ## [0.3.0] - 2026-01-30
30
+
31
+ ### Added
32
+
33
+ - Molecular descriptors module: molecular weight, exact mass, heavy atom count, bond type counts
34
+ - Topological descriptors: ring count, ring atoms/bonds detection, rotatable bond count
35
+ - Element data table (~30 elements with IUPAC 2021 atomic weights)
36
+ - Convenience descriptor methods on `Molecule`
37
+
38
+ ## [0.2.0] - 2025-01-29
39
+
40
+ ### Added
41
+
42
+ - SDF V3000 parser and writer with stereogroups, SGroups, and collections
43
+ - Automatic V2000/V3000 format detection and auto-format writing
44
+ - MOL2 (TRIPOS) parser with streaming support
45
+ - Performance benchmarks (~220k mol/s, 4-7x faster than RDKit)
46
+
47
+ ## [0.1.0] - 2025-01-25
48
+
49
+ ### Added
50
+
51
+ - SDF V2000 parser with atom/bond/property blocks and M CHG/M ISO lines
52
+ - SDF V2000 writer with property preservation and multi-molecule output
53
+ - Core types: `Molecule`, `Atom`, `Bond`, `BondOrder`, `BondStereo`
54
+ - Molecule methods: `formula()`, `centroid()`, `translate()`, `neighbors()`, `element_counts()`
55
+ - Memory-efficient streaming iterator for large multi-molecule files
56
+
57
+ [Unreleased]: https://github.com/HFooladi/sdfrust/compare/v0.5.0...HEAD
58
+ [0.5.0]: https://github.com/HFooladi/sdfrust/compare/v0.4.0...v0.5.0
59
+ [0.4.0]: https://github.com/HFooladi/sdfrust/compare/v0.3.0...v0.4.0
60
+ [0.3.0]: https://github.com/HFooladi/sdfrust/compare/v0.2.0...v0.3.0
61
+ [0.2.0]: https://github.com/HFooladi/sdfrust/compare/v0.1.0...v0.2.0
62
+ [0.1.0]: https://github.com/HFooladi/sdfrust/releases/tag/v0.1.0