--- /srv/rebuilderd/tmp/rebuilderdijLEzT/inputs/python-gsd-doc_5.0.1-2_all.deb +++ /srv/rebuilderd/tmp/rebuilderdijLEzT/out/python-gsd-doc_5.0.1-2_all.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2026-05-02 12:42:19.000000 debian-binary │ -rw-r--r-- 0 0 0 2840 2026-05-02 12:42:19.000000 control.tar.xz │ --rw-r--r-- 0 0 0 130612 2026-05-02 12:42:19.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 130624 2026-05-02 12:42:19.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── ./usr/share/doc/python-gsd-doc/html/hoomd-examples.html │ │ │ @@ -346,23 +346,23 @@ │ │ │ Out[16]: np.uint64(5) │ │ │ │ │ │ In [17]: frame.particles.N │ │ │ Out[17]: np.uint32(9) │ │ │ │ │ │ In [18]: frame.particles.position │ │ │ Out[18]: │ │ │ -array([[0.40931383, 0.3944288 , 0.28529498], │ │ │ - [0.90414315, 0.16989753, 0.98972803], │ │ │ - [0.5312833 , 0.4872685 , 0.20660008], │ │ │ - [0.48837915, 0.43890172, 0.65516406], │ │ │ - [0.8731297 , 0.3821069 , 0.15367253], │ │ │ - [0.9731316 , 0.94024175, 0.0798687 ], │ │ │ - [0.74591625, 0.9242319 , 0.29902405], │ │ │ - [0.7058642 , 0.9823573 , 0.61915636], │ │ │ - [0.37146032, 0.62659866, 0.38367492]], dtype=float32) │ │ │ +array([[0.3895201 , 0.8922229 , 0.4029734 ], │ │ │ + [0.6099086 , 0.37820303, 0.24648802], │ │ │ + [0.3304348 , 0.8063253 , 0.62818885], │ │ │ + [0.09426489, 0.8577583 , 0.15407461], │ │ │ + [0.18701096, 0.21556483, 0.66546303], │ │ │ + [0.7434537 , 0.8528858 , 0.8560186 ], │ │ │ + [0.728312 , 0.27386367, 0.75368845], │ │ │ + [0.2225079 , 0.82056767, 0.16640535], │ │ │ + [0.24845004, 0.67893153, 0.80714184]], dtype=float32) │ │ │ │ │ │ │ │ │
gsd.hoomd.HOOMDTrajectory supports random indexing of frames in the file.
│ │ │ Indexing into a trajectory returns a gsd.hoomd.Frame.
In [23]: f = gsd.pygsd.GSDFile(open('example.gsd', 'rb'))
│ │ │
│ │ │ In [24]: trajectory = gsd.hoomd.HOOMDTrajectory(f);
│ │ │
│ │ │ In [25]: trajectory[3].particles.position
│ │ │ Out[25]:
│ │ │ -array([[0.49910492, 0.48625803, 0.51129526],
│ │ │ - [0.35684356, 0.7777966 , 0.7194868 ],
│ │ │ - [0.82526743, 0.68652916, 0.31804648],
│ │ │ - [0.27317593, 0.6477686 , 0.8415889 ],
│ │ │ - [0.15134461, 0.68677837, 0.6604622 ],
│ │ │ - [0.5948088 , 0.1776684 , 0.17009145],
│ │ │ - [0.0881347 , 0.99246234, 0.31263277]], dtype=float32)
│ │ │ +array([[0.37303865, 0.7455791 , 0.2619885 ],
│ │ │ + [0.3601964 , 0.8638101 , 0.80081165],
│ │ │ + [0.21876085, 0.66382736, 0.78161234],
│ │ │ + [0.19147414, 0.9197815 , 0.26404357],
│ │ │ + [0.492531 , 0.42297065, 0.21428843],
│ │ │ + [0.6071563 , 0.87600887, 0.22788686],
│ │ │ + [0.8161657 , 0.36587283, 0.26404652]], dtype=float32)
│ │ │ You can use GSD without needing to compile C code to read GSD files
│ │ │ using gsd.pygsd.GSDFile in combination with gsd.hoomd.HOOMDTrajectory. It
│ │ │ only supports the rb mode and does not read files as fast as the C
│ │ │ implementation. It takes in a python file-like object, so it can be used with
│ │ │ in-memory IO classes, and grid file classes that access data over the internet.