{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.wlINol3s/b1/python-gsd_4.0.0-1_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.wlINol3s/b2/python-gsd_4.0.0-1_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- 0306378ac5ebc0974bebf0dce8f6a3ca 131172 doc optional python-gsd-doc_4.0.0-1_all.deb\n+ c14e8061c416561fe2586a07da92e749 131176 doc optional python-gsd-doc_4.0.0-1_all.deb\n 7fc83ebe571587175d16008e7a89374c 352588 debug optional python3-gsd-dbgsym_4.0.0-1_arm64.deb\n d68d13e390c6042e86d896123964f66e 199244 python optional python3-gsd_4.0.0-1_arm64.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 2712 2025-08-11 08:32:38.000000 control.tar.xz\n--rw-r--r-- 0 0 0 128268 2025-08-11 08:32:38.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 128272 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) 23394 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) 88676 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) 95445 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) 49306 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) 18756 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) 107555 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) 16660 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) 82340 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) 82347 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) 32666 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) 20931 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) 24985 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": "@@ -355,23 +355,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.44406173, 0.17559636, 0.2222613 ],\n- [0.6508352 , 0.113274 , 0.7202399 ],\n- [0.08567638, 0.8802662 , 0.552649 ],\n- [0.6825279 , 0.24914695, 0.35330382],\n- [0.8839504 , 0.7069209 , 0.92636675],\n- [0.84915155, 0.8347492 , 0.03165997],\n- [0.2621206 , 0.07745636, 0.5414155 ],\n- [0.5097828 , 0.1379483 , 0.4983514 ],\n- [0.06672507, 0.40533727, 0.61154073]], dtype=float32)\n+array([[0.43691736, 0.694616 , 0.45686686],\n+ [0.6800653 , 0.18543908, 0.7624393 ],\n+ [0.8037584 , 0.48257998, 0.35127756],\n+ [0.52736926, 0.8628242 , 0.3168676 ],\n+ [0.8102098 , 0.21282214, 0.74445987],\n+ [0.43154633, 0.03992506, 0.857886 ],\n+ [0.16939937, 0.7471047 , 0.830916 ],\n+ [0.48206672, 0.1710586 , 0.44222164],\n+ [0.70467985, 0.5572919 , 0.02540824]], 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.09843123, 0.68287647, 0.75061464],\n- [0.315302 , 0.09504034, 0.20447439],\n- [0.08307427, 0.7748685 , 0.53812957],\n- [0.0409419 , 0.5683383 , 0.608077 ],\n- [0.7270807 , 0.2752773 , 0.0419017 ],\n- [0.24440262, 0.13852341, 0.9648172 ],\n- [0.11467245, 0.2848096 , 0.7611032 ]], dtype=float32)\n+array([[0.69884366, 0.94920623, 0.8069176 ],\n+ [0.89985126, 0.21902889, 0.02423725],\n+ [0.00899285, 0.01302007, 0.608481 ],\n+ [0.05694724, 0.5153894 , 0.9163519 ],\n+ [0.96557677, 0.9014464 , 0.9535993 ],\n+ [0.11680736, 0.7484598 , 0.18325546],\n+ [0.11948449, 0.12122602, 0.88898814]], 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.