{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.tdBbQM7S/b1/python-gsd_3.4.2-2_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.tdBbQM7S/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- 950edcc47275d3d81eff393b78b403a6 130556 doc optional python-gsd-doc_3.4.2-2_all.deb\n+ 67a6c8b9f251abed8a19729051787825 130516 doc optional python-gsd-doc_3.4.2-2_all.deb\n 4b71fc8e0b40044d15e996d3411618c4 356428 debug optional python3-gsd-dbgsym_3.4.2-2_arm64.deb\n 937dd0a9e90717621ff243349a834555 199348 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 2704 2025-02-13 09:32:12.000000 control.tar.xz\n--rw-r--r-- 0 0 0 127660 2025-02-13 09:32:12.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 2696 2025-02-13 09:32:12.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 127628 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) 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) 82975 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.3990708 , 0.46742538, 0.11013277],\n- [0.500232 , 0.6611834 , 0.34853783],\n- [0.33798498, 0.17842552, 0.21506892],\n- [0.8987975 , 0.9976312 , 0.43329182],\n- [0.7190866 , 0.56602114, 0.85763174],\n- [0.5262568 , 0.7620646 , 0.514571 ],\n- [0.7480636 , 0.1283451 , 0.17023051],\n- [0.14996521, 0.26496089, 0.60422975],\n- [0.91051674, 0.6090423 , 0.02837761]], dtype=float32)\n+array([[0.59453017, 0.07023066, 0.15491188],\n+ [0.6590497 , 0.4925308 , 0.05365222],\n+ [0.60094637, 0.7735177 , 0.9989324 ],\n+ [0.4629141 , 0.8696187 , 0.05940412],\n+ [0.09813012, 0.5360956 , 0.3273283 ],\n+ [0.28415552, 0.00800144, 0.23269427],\n+ [0.15539242, 0.2657451 , 0.97073185],\n+ [0.3030726 , 0.77943254, 0.797485 ],\n+ [0.66650915, 0.19021054, 0.2135466 ]], 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.89500844, 0.6804407 , 0.04267412],\n- [0.14433402, 0.5661871 , 0.7641873 ],\n- [0.15324944, 0.9127389 , 0.26262757],\n- [0.27094877, 0.7915954 , 0.30066726],\n- [0.7693207 , 0.16346167, 0.09150158],\n- [0.4221725 , 0.18375231, 0.4870852 ],\n- [0.4705518 , 0.8647721 , 0.38522786]], dtype=float32)\n+array([[0.22408643, 0.66488 , 0.7753238 ],\n+ [0.5573457 , 0.67342 , 0.3152015 ],\n+ [0.34624693, 0.7557675 , 0.18985012],\n+ [0.9955534 , 0.73010087, 0.39911693],\n+ [0.22552542, 0.47133732, 0.15401979],\n+ [0.7119268 , 0.01261514, 0.6961568 ],\n+ [0.8197673 , 0.13014723, 0.15284488]], 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.