{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.vIoh5HVD/b1/python-gsd_3.4.2-2_armhf.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.vIoh5HVD/b2/python-gsd_3.4.2-2_armhf.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- 9585a15c58d6615fe54e7c72b3f0b1e7 130552 doc optional python-gsd-doc_3.4.2-2_all.deb\n+ 4bf31e3f3840222b6306ae529c8d6411 130580 doc optional python-gsd-doc_3.4.2-2_all.deb\n e2e57e0e351df90fe22e47bccec40822 692420 debug optional python3-gsd-dbgsym_3.4.2-2_armhf.deb\n 3f53dedf2a81f51610a341d438827b17 223876 python optional python3-gsd_3.4.2-2_armhf.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 127660 2025-02-13 09:32:12.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 127688 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) 82983 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) 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) 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.7787766 , 0.37731883, 0.11063553],\n- [0.6228612 , 0.22996604, 0.51892895],\n- [0.96543646, 0.01324726, 0.10756492],\n- [0.53058887, 0.62746906, 0.75891227],\n- [0.30188274, 0.8432486 , 0.8124726 ],\n- [0.48333728, 0.07284048, 0.6580068 ],\n- [0.85077316, 0.18893366, 0.6415813 ],\n- [0.16494253, 0.2503542 , 0.0839788 ],\n- [0.71707195, 0.38701802, 0.57364005]], dtype=float32)\n+array([[0.46042085, 0.66096556, 0.9636125 ],\n+ [0.40128598, 0.36796367, 0.9023753 ],\n+ [0.43356812, 0.09926654, 0.96342766],\n+ [0.9331546 , 0.2535075 , 0.4326934 ],\n+ [0.83275 , 0.65874517, 0.08372786],\n+ [0.97389233, 0.17283413, 0.27172983],\n+ [0.7167366 , 0.8462249 , 0.95175767],\n+ [0.92493963, 0.09886511, 0.7889793 ],\n+ [0.25992137, 0.04904203, 0.9059974 ]], 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.6955228 , 0.91260123, 0.82992953],\n- [0.37394592, 0.43463865, 0.6811616 ],\n- [0.45235583, 0.7944418 , 0.68996704],\n- [0.9384123 , 0.9118866 , 0.30084717],\n- [0.56774294, 0.3225283 , 0.24643196],\n- [0.10438187, 0.7111048 , 0.6542267 ],\n- [0.7895071 , 0.5569941 , 0.5236448 ]], dtype=float32)\n+array([[0.03906133, 0.6675068 , 0.24008569],\n+ [0.7898314 , 0.8749309 , 0.9296472 ],\n+ [0.2949264 , 0.22762361, 0.23406096],\n+ [0.13552946, 0.70048946, 0.00832591],\n+ [0.3723467 , 0.40412304, 0.6578428 ],\n+ [0.10187707, 0.03952946, 0.3197003 ],\n+ [0.36074835, 0.5260127 , 0.8680648 ]], 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.