{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.gQYZBb4R/b1/python-gsd_4.0.0-1_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.gQYZBb4R/b2/python-gsd_4.0.0-1_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- fb03088e56b57ab473b1ccfa53c7df7d 122464 doc optional python-gsd-doc_4.0.0-1_all.deb\n+ f185a0b81957879cae4ab4ea8694da1e 122468 doc optional python-gsd-doc_4.0.0-1_all.deb\n d87cd6831dde921ada279435f407c06d 362300 debug optional python3-gsd-dbgsym_4.0.0-1_amd64.deb\n 7f9647f73192c62530ad5b20c3c04475 208964 python optional python3-gsd_4.0.0-1_amd64.deb\n"}, {"source1": "python-gsd-doc_4.0.0-1_all.deb", "source2": "python-gsd-doc_4.0.0-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-08-11 08:32:38.000000 debian-binary\n -rw-r--r-- 0 0 0 2708 2025-08-11 08:32:38.000000 control.tar.xz\n--rw-r--r-- 0 0 0 119564 2025-08-11 08:32:38.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 119568 2025-08-11 08:32:38.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -71,15 +71,15 @@\n -rw-r--r-- 0 root (0) root (0) 23272 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-api.html\n -rw-r--r-- 0 root (0) root (0) 88696 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.fl.html\n -rw-r--r-- 0 root (0) root (0) 95626 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.hoomd.html\n -rw-r--r-- 0 root (0) root (0) 49510 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.pygsd.html\n -rw-r--r-- 0 root (0) root (0) 18753 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.version.html\n -rw-r--r-- 0 root (0) root (0) 107552 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/schema-hoomd.html\n -rw-r--r-- 0 root (0) root (0) 16657 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 73229 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 73237 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 32663 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/shapes.html\n -rw-r--r-- 0 root (0) root (0) 20809 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/specification.html\n -rw-r--r-- 0 root (0) root (0) 24982 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/style.html\n drwxr-xr-x 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 331 2025-08-11 08:32:38.000000 ./usr/share/doc-base/python-gsd-doc.python-gsd\n lrwxrwxrwx 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/_static/doctools.js -> ../../../../javascript/sphinxdoc/1.0/doctools.js\n lrwxrwxrwx 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/_static/language_data.js -> ../../../../javascript/sphinxdoc/1.0/language_data.js\n"}, {"source1": "./usr/share/doc/python-gsd-doc/html/hoomd-examples.html", "source2": "./usr/share/doc/python-gsd-doc/html/hoomd-examples.html", "unified_diff": "@@ -354,23 +354,23 @@\n Out[16]: np.uint64(5)\n \n In [17]: frame.particles.N\n Out[17]: np.uint32(9)\n \n In [18]: frame.particles.position\n Out[18]: \n-array([[0.6677328 , 0.8213257 , 0.6674861 ],\n- [0.5547276 , 0.9966012 , 0.02511235],\n- [0.89096284, 0.9257116 , 0.7023105 ],\n- [0.7234874 , 0.41133717, 0.3202295 ],\n- [0.04147834, 0.5285223 , 0.3846988 ],\n- [0.35561624, 0.8787627 , 0.33769423],\n- [0.7806315 , 0.9297999 , 0.8216616 ],\n- [0.97796446, 0.669706 , 0.9461866 ],\n- [0.5250734 , 0.8560434 , 0.69748396]], dtype=float32)\n+array([[0.42273986, 0.00119538, 0.07554954],\n+ [0.544627 , 0.457182 , 0.12844063],\n+ [0.5191807 , 0.93156725, 0.67181826],\n+ [0.38634574, 0.38248292, 0.06432302],\n+ [0.10994696, 0.80607 , 0.4465127 ],\n+ [0.29299894, 0.6138905 , 0.4805193 ],\n+ [0.6096183 , 0.825109 , 0.28283715],\n+ [0.50851226, 0.15095745, 0.0567144 ],\n+ [0.00559976, 0.19834387, 0.46424872]], dtype=float32)\n \n \n
gsd.hoomd.HOOMDTrajectory
supports random indexing of frames in the file.\n Indexing into a trajectory returns a gsd.hoomd.Frame
.
In [23]: f = gsd.pygsd.GSDFile(open('example.gsd', 'rb'))\n \n In [24]: trajectory = gsd.hoomd.HOOMDTrajectory(f);\n \n In [25]: trajectory[3].particles.position\n Out[25]: \n-array([[0.8331532 , 0.19725868, 0.67997414],\n- [0.01993724, 0.499004 , 0.8539594 ],\n- [0.6885922 , 0.88828313, 0.132843 ],\n- [0.57792616, 0.03663801, 0.24251933],\n- [0.72045106, 0.43235323, 0.3263228 ],\n- [0.13294075, 0.94838744, 0.43018812],\n- [0.5149337 , 0.10885777, 0.07219999]], dtype=float32)\n+array([[0.79937756, 0.02676329, 0.21170373],\n+ [0.6772995 , 0.4178387 , 0.9156584 ],\n+ [0.25008443, 0.10054143, 0.6978588 ],\n+ [0.99609125, 0.48974732, 0.34700024],\n+ [0.06529749, 0.2516655 , 0.9121943 ],\n+ [0.37612745, 0.02483141, 0.67404586],\n+ [0.88794833, 0.09425218, 0.23472789]], dtype=float32)\n
You can use GSD without needing to compile C code to read GSD files\n using gsd.pygsd.GSDFile
in combination with gsd.hoomd.HOOMDTrajectory
. It\n only supports the rb
mode and does not read files as fast as the C\n implementation. It takes in a python file-like object, so it can be used with\n in-memory IO classes, and grid file classes that access data over the internet.