{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.aCMqFi0R/b1/python-gsd_3.0.1-3_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.aCMqFi0R/b2/python-gsd_3.0.1-3_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- 6bb058542fbcccd2033d1d434eea5af1 119968 doc optional python-gsd-doc_3.0.1-3_all.deb\n+ fa7cc26567efc06068c0ca4e569db94f 119952 doc optional python-gsd-doc_3.0.1-3_all.deb\n 09a28f3b69a7bca83240b0a0eaf6b56b 640776 debug optional python3-gsd-dbgsym_3.0.1-3_amd64.deb\n 81a33fd30dbb2238f1688e3ed0df2a52 238964 python optional python3-gsd_3.0.1-3_amd64.deb\n"}, {"source1": "python-gsd-doc_3.0.1-3_all.deb", "source2": "python-gsd-doc_3.0.1-3_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-08-02 12:37:21.000000 debian-binary\n -rw-r--r-- 0 0 0 2552 2023-08-02 12:37:21.000000 control.tar.xz\n--rw-r--r-- 0 0 0 117224 2023-08-02 12:37:21.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 117208 2023-08-02 12:37:21.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": "@@ -65,15 +65,15 @@\n -rw-r--r-- 0 root (0) root (0) 23806 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/python-api.html\n -rw-r--r-- 0 root (0) root (0) 87993 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.fl.html\n -rw-r--r-- 0 root (0) root (0) 91372 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.hoomd.html\n -rw-r--r-- 0 root (0) root (0) 49733 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.pygsd.html\n -rw-r--r-- 0 root (0) root (0) 19294 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.version.html\n -rw-r--r-- 0 root (0) root (0) 108026 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/schema-hoomd.html\n -rw-r--r-- 0 root (0) root (0) 16972 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/search.html\n--rw-r--r-- 0 root (0) root (0) 80513 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n+-rw-r--r-- 0 root (0) root (0) 80516 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 33183 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/shapes.html\n -rw-r--r-- 0 root (0) root (0) 21209 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/specification.html\n -rw-r--r-- 0 root (0) root (0) 25504 2023-08-02 12:37:21.000000 ./usr/share/doc/python-gsd-doc/html/style.html\n drwxr-xr-x 0 root (0) root (0) 0 2023-08-02 12:37:21.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 331 2023-08-02 12:37:21.000000 ./usr/share/doc-base/python-gsd-doc.python-gsd\n lrwxrwxrwx 0 root (0) root (0) 0 2023-08-02 12:37:21.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 2023-08-02 12:37:21.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": "@@ -373,23 +373,23 @@\n Out[16]: 5\n \n In [17]: frame.particles.N\n Out[17]: 9\n \n In [18]: frame.particles.position\n Out[18]: \n-array([[0.30565265, 0.7445175 , 0.15681757],\n- [0.95955884, 0.03958008, 0.95165944],\n- [0.01000269, 0.40106466, 0.8924149 ],\n- [0.01584822, 0.24648538, 0.7284297 ],\n- [0.31841233, 0.14896436, 0.569452 ],\n- [0.9556609 , 0.85701716, 0.98325866],\n- [0.9656909 , 0.17607702, 0.56057733],\n- [0.8836525 , 0.8779196 , 0.6774819 ],\n- [0.21702878, 0.5364795 , 0.3043885 ]], dtype=float32)\n+array([[0.8945351 , 0.13755544, 0.9993661 ],\n+ [0.9071383 , 0.2969578 , 0.75735646],\n+ [0.5924349 , 0.7538882 , 0.91161734],\n+ [0.8520741 , 0.22650138, 0.13367179],\n+ [0.5434274 , 0.13513291, 0.44295534],\n+ [0.34018496, 0.27826542, 0.28127688],\n+ [0.13951832, 0.5908535 , 0.18632045],\n+ [0.45177564, 0.49235082, 0.74367064],\n+ [0.5616351 , 0.09533826, 0.99606645]], 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.7502647 , 0.0770371 , 0.2749768 ],\n- [0.39553922, 0.53802305, 0.99655193],\n- [0.5469537 , 0.34015775, 0.16664435],\n- [0.7733874 , 0.64666516, 0.5146728 ],\n- [0.9931117 , 0.98185945, 0.3499827 ],\n- [0.7359413 , 0.3079657 , 0.2621609 ],\n- [0.5010705 , 0.46780312, 0.8324969 ]], dtype=float32)\n+array([[0.15498936, 0.6902609 , 0.3735715 ],\n+ [0.38963243, 0.5085488 , 0.09236702],\n+ [0.3948658 , 0.6044012 , 0.11619203],\n+ [0.5770863 , 0.8761671 , 0.34685022],\n+ [0.28904447, 0.6840989 , 0.0748829 ],\n+ [0.6729238 , 0.12745693, 0.78457874],\n+ [0.7626844 , 0.12312888, 0.5134583 ]], 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.