{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.zwPtSP9v/b1/python-gsd_3.4.2-2_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.zwPtSP9v/b2/python-gsd_3.4.2-2_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- f4303c8a90c220a9cbf4cb0f747f4a42 130584 doc optional python-gsd-doc_3.4.2-2_all.deb\n+ 9f14226f74179614c4862e380ef09f03 130604 doc optional python-gsd-doc_3.4.2-2_all.deb\n 4789ff7b39ba8ab1e85564d3730a354c 699396 debug optional python3-gsd-dbgsym_3.4.2-2_arm64.deb\n e33608c6f4c5e539c1afb2b893995699 218124 python optional python3-gsd_3.4.2-2_arm64.deb\n"}, {"source1": "python-gsd-doc_3.4.2-2_all.deb", "source2": "python-gsd-doc_3.4.2-2_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-02-13 09:32:12.000000 debian-binary\n -rw-r--r-- 0 0 0 2700 2025-02-13 09:32:12.000000 control.tar.xz\n--rw-r--r-- 0 0 0 127692 2025-02-13 09:32:12.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 127712 2025-02-13 09:32:12.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-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/python-api.html\n -rw-r--r-- 0 root (0) root (0) 87525 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.fl.html\n -rw-r--r-- 0 root (0) root (0) 95444 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.hoomd.html\n -rw-r--r-- 0 root (0) root (0) 49306 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.pygsd.html\n -rw-r--r-- 0 root (0) root (0) 18756 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.version.html\n -rw-r--r-- 0 root (0) root (0) 107555 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/schema-hoomd.html\n -rw-r--r-- 0 root (0) root (0) 16660 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 82980 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 82978 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 32666 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/shapes.html\n -rw-r--r-- 0 root (0) root (0) 20931 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/specification.html\n -rw-r--r-- 0 root (0) root (0) 24988 2025-02-13 09:32:12.000000 ./usr/share/doc/python-gsd-doc/html/style.html\n drwxr-xr-x 0 root (0) root (0) 0 2025-02-13 09:32:12.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 331 2025-02-13 09:32:12.000000 ./usr/share/doc-base/python-gsd-doc.python-gsd\n lrwxrwxrwx 0 root (0) root (0) 0 2025-02-13 09:32:12.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-02-13 09:32:12.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.97494966, 0.10634176, 0.6203457 ],\n- [0.29539776, 0.00234806, 0.22667538],\n- [0.6641158 , 0.73922634, 0.74267626],\n- [0.16643669, 0.02652868, 0.6227974 ],\n- [0.68521273, 0.93172663, 0.54958594],\n- [0.7856771 , 0.56165576, 0.0756341 ],\n- [0.06370533, 0.53698397, 0.8206833 ],\n- [0.4116612 , 0.4531208 , 0.8746698 ],\n- [0.70722413, 0.9525089 , 0.41565344]], dtype=float32)\n+array([[0.12146881, 0.33087596, 0.753274 ],\n+ [0.61719453, 0.14221686, 0.46614018],\n+ [0.915985 , 0.78698945, 0.02110361],\n+ [0.12735628, 0.08073799, 0.9106681 ],\n+ [0.5150076 , 0.934789 , 0.04066788],\n+ [0.7527447 , 0.45875233, 0.01952287],\n+ [0.98126715, 0.37712803, 0.42625242],\n+ [0.2020261 , 0.8329942 , 0.5559982 ],\n+ [0.64297414, 0.5791645 , 0.08674953]], 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.4982311 , 0.58905643, 0.9760688 ],\n- [0.01140458, 0.56144255, 0.15848383],\n- [0.5244424 , 0.02714723, 0.11656969],\n- [0.67409205, 0.9794036 , 0.20671278],\n- [0.31232786, 0.948629 , 0.88299125],\n- [0.572064 , 0.2893595 , 0.6806537 ],\n- [0.24364088, 0.411466 , 0.08212907]], dtype=float32)\n+array([[0.9694297 , 0.9121211 , 0.01882476],\n+ [0.360386 , 0.7577988 , 0.6796943 ],\n+ [0.5044618 , 0.11502374, 0.3296028 ],\n+ [0.17759773, 0.9953068 , 0.14918868],\n+ [0.12499166, 0.4159848 , 0.35105523],\n+ [0.28119904, 0.38572064, 0.19810611],\n+ [0.24113949, 0.5761633 , 0.49548864]], 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.