{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.rX1i8bal/b1/python-gsd_2.7.0-2_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.rX1i8bal/b2/python-gsd_2.7.0-2_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- ace0616e80d36f9ec22d3b1b8540f4bf 90960 doc optional python-gsd-doc_2.7.0-2_all.deb\n+ 0c232682982b4f179837ce0095e2782f 90952 doc optional python-gsd-doc_2.7.0-2_all.deb\n b6e4d0bebce7f7810f15746d00f8d906 250376 debug optional python3-gsd-dbgsym_2.7.0-2_amd64.deb\n 632a543a3421226a8d50bad316c37517 84280 python optional python3-gsd_2.7.0-2_amd64.deb\n"}, {"source1": "python-gsd-doc_2.7.0-2_all.deb", "source2": "python-gsd-doc_2.7.0-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 2023-01-17 16:37:42.000000 debian-binary\n--rw-r--r-- 0 0 0 2380 2023-01-17 16:37:42.000000 control.tar.xz\n--rw-r--r-- 0 0 0 88388 2023-01-17 16:37:42.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 2376 2023-01-17 16:37:42.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 88384 2023-01-17 16:37:42.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": "@@ -59,15 +59,15 @@\n -rw-r--r-- 0 root (0) root (0) 7101 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/py-modindex.html\n -rw-r--r-- 0 root (0) root (0) 32745 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/python-api.html\n -rw-r--r-- 0 root (0) root (0) 74465 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.fl.html\n -rw-r--r-- 0 root (0) root (0) 66497 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.hoomd.html\n -rw-r--r-- 0 root (0) root (0) 35551 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.pygsd.html\n -rw-r--r-- 0 root (0) root (0) 97149 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/schema-hoomd.html\n -rw-r--r-- 0 root (0) root (0) 5908 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 68820 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 68818 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 21656 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/shapes.html\n -rw-r--r-- 0 root (0) root (0) 10113 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/specification.html\n -rw-r--r-- 0 root (0) root (0) 13964 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/style.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-01-17 16:37:42.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 331 2023-01-17 16:37:42.000000 ./usr/share/doc-base/python-gsd-doc.python-gsd\n lrwxrwxrwx 0 root (0) root (0) 0 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/_static/_sphinx_javascript_frameworks_compat.js -> ../../../../javascript/sphinxdoc/1.0/_sphinx_javascript_frameworks_compat.js\n lrwxrwxrwx 0 root (0) root (0) 0 2023-01-17 16:37:42.000000 ./usr/share/doc/python-gsd-doc/html/_static/css/badge_only.css -> ../../../../../sphinx_rtd_theme/static/css/badge_only.css\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": "@@ -193,23 +193,23 @@\n Out[16]: 5\n \n In [17]: snap.particles.N\n Out[17]: 9\n \n In [18]: snap.particles.position\n Out[18]: \n-array([[0.66548145, 0.7217738 , 0.3356938 ],\n- [0.5118772 , 0.31913754, 0.8520619 ],\n- [0.13728406, 0.86236 , 0.05703682],\n- [0.36397937, 0.06778045, 0.696222 ],\n- [0.5390319 , 0.65108067, 0.65739554],\n- [0.9344352 , 0.9795785 , 0.68341315],\n- [0.5518626 , 0.9389614 , 0.4589597 ],\n- [0.33926526, 0.89014286, 0.16976635],\n- [0.34620884, 0.18957432, 0.12056684]], dtype=float32)\n+array([[0.7464663 , 0.95336473, 0.7646863 ],\n+ [0.9766425 , 0.39678612, 0.60779697],\n+ [0.89620507, 0.4377872 , 0.5764169 ],\n+ [0.83945996, 0.5443509 , 0.40876678],\n+ [0.5226231 , 0.17476153, 0.30245203],\n+ [0.51583683, 0.2748747 , 0.03980057],\n+ [0.8133657 , 0.733752 , 0.74457335],\n+ [0.4288136 , 0.51777613, 0.47890168],\n+ [0.3874723 , 0.8482516 , 0.58224165]], 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.Snapshot
.
In [23]: f = gsd.pygsd.GSDFile(open('test.gsd', 'rb'))\n \n In [24]: t = gsd.hoomd.HOOMDTrajectory(f);\n \n In [25]: t[3].particles.position\n Out[25]: \n-array([[0.6602933 , 0.04728471, 0.00328238],\n- [0.5826964 , 0.8271196 , 0.5300329 ],\n- [0.03169398, 0.37426385, 0.10960583],\n- [0.5062379 , 0.37031758, 0.26156208],\n- [0.9803024 , 0.5835559 , 0.9713085 ],\n- [0.17724687, 0.43642366, 0.34112296],\n- [0.80743533, 0.89011514, 0.3036749 ]], dtype=float32)\n+array([[0.5690155 , 0.5727605 , 0.22527999],\n+ [0.9919063 , 0.23359638, 0.5809065 ],\n+ [0.85974574, 0.7840573 , 0.70808566],\n+ [0.7786572 , 0.01189263, 0.8535928 ],\n+ [0.9105352 , 0.59369504, 0.4310235 ],\n+ [0.4164023 , 0.8897345 , 0.58014494],\n+ [0.71285105, 0.9805963 , 0.11398367]], 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.