{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.5LAnb0dv/b1/python-gsd_3.0.1-3_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.5LAnb0dv/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- 2d8771e8df3f45a82c424757010c2625 118356 doc optional python-gsd-doc_3.0.1-3_all.deb\n+ ce18decc8f58a91c0b4b0a141682daa4 118324 doc optional python-gsd-doc_3.0.1-3_all.deb\n 44d523b92f85b28db795c4b7bdc1c087 640920 debug optional python3-gsd-dbgsym_3.0.1-3_amd64.deb\n 66904719e349f35744b94d88d009931d 239108 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 2548 2023-08-02 12:37:21.000000 control.tar.xz\n--rw-r--r-- 0 0 0 115616 2023-08-02 12:37:21.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 2544 2023-08-02 12:37:21.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 115588 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) 19727 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) 83887 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) 87227 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) 45625 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) 15203 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) 103876 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) 13079 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) 80514 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) 80517 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) 29105 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) 17131 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) 21425 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": "@@ -310,23 +310,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.37390733, 0.71998274, 0.43799657],\n- [0.6426195 , 0.7718413 , 0.68808806],\n- [0.02576821, 0.7597262 , 0.10231445],\n- [0.89338195, 0.9596529 , 0.9921257 ],\n- [0.87381256, 0.18778679, 0.03054101],\n- [0.2853842 , 0.82738787, 0.40588272],\n- [0.6482421 , 0.40185443, 0.80370986],\n- [0.6249742 , 0.81131065, 0.01820142],\n- [0.76491374, 0.84835976, 0.4321999 ]], dtype=float32)\n+array([[0.54103154, 0.975791 , 0.43388274],\n+ [0.7408644 , 0.9734215 , 0.2746232 ],\n+ [0.38342568, 0.5677094 , 0.5156566 ],\n+ [0.39157084, 0.8855668 , 0.8198635 ],\n+ [0.29041377, 0.06137994, 0.5751454 ],\n+ [0.39987096, 0.70149064, 0.07277166],\n+ [0.7703304 , 0.00663201, 0.04075722],\n+ [0.5452252 , 0.31657168, 0.03254204],\n+ [0.83269984, 0.46103227, 0.07075705]], 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.67985034, 0.5476803 , 0.6004558 ],\n- [0.3292016 , 0.27974683, 0.8402514 ],\n- [0.6794727 , 0.68138397, 0.8720766 ],\n- [0.865217 , 0.658212 , 0.61564523],\n- [0.96864 , 0.09417754, 0.05064321],\n- [0.8695586 , 0.13819724, 0.24681121],\n- [0.22765085, 0.66198814, 0.6570936 ]], dtype=float32)\n+array([[0.06152635, 0.6757562 , 0.02993083],\n+ [0.33670634, 0.35746235, 0.9096442 ],\n+ [0.6995247 , 0.33191475, 0.90453064],\n+ [0.79841435, 0.84153485, 0.11337237],\n+ [0.48603037, 0.90141046, 0.38142636],\n+ [0.17779808, 0.8328633 , 0.7720775 ],\n+ [0.2406233 , 0.708313 , 0.9967891 ]], 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.