{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.H1wATLkK/b1/python-gsd_3.0.1-3_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.H1wATLkK/b2/python-gsd_3.0.1-3_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n- 80980e9426541e5eea64a420f7289cfd 118340 doc optional python-gsd-doc_3.0.1-3_all.deb\n+ 3426630af300d8db00529b4b9690f1fc 118336 doc optional python-gsd-doc_3.0.1-3_all.deb\n 71978179cbf8cda40e9a93dce94795d3 631284 debug optional python3-gsd-dbgsym_3.0.1-3_arm64.deb\n dd4c61abde5faef7d1bf3b4396b43cda 222364 python optional python3-gsd_3.0.1-3_arm64.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 2544 2023-08-02 12:37:21.000000 control.tar.xz\n -rw-r--r-- 0 0 0 115600 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) 80521 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.8225286 , 0.5700504 , 0.7693488 ],\n- [0.22858083, 0.65152127, 0.2679679 ],\n- [0.01170718, 0.2117889 , 0.7099563 ],\n- [0.53454596, 0.0052614 , 0.9487682 ],\n- [0.57159925, 0.31177467, 0.5365804 ],\n- [0.4291448 , 0.7849821 , 0.75899404],\n- [0.99410915, 0.9332814 , 0.04853144],\n- [0.6701595 , 0.09364031, 0.2647182 ],\n- [0.52979803, 0.5353821 , 0.01466067]], dtype=float32)\n+array([[0.19194771, 0.46693438, 0.851254 ],\n+ [0.31320557, 0.39063886, 0.8439269 ],\n+ [0.23675546, 0.84758246, 0.916462 ],\n+ [0.17691678, 0.79122907, 0.8133156 ],\n+ [0.1155858 , 0.94665796, 0.53327215],\n+ [0.82425505, 0.26451394, 0.42921844],\n+ [0.58350307, 0.37691027, 0.7619054 ],\n+ [0.68717855, 0.28560618, 0.72615004],\n+ [0.9087603 , 0.7062856 , 0.9994117 ]], 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.5796892 , 0.10841217, 0.68183434],\n- [0.59262806, 0.44949883, 0.03599533],\n- [0.21125856, 0.40382934, 0.7678802 ],\n- [0.8606013 , 0.41398665, 0.01096409],\n- [0.1786834 , 0.9774497 , 0.9232755 ],\n- [0.21116728, 0.8403318 , 0.3402548 ],\n- [0.05705536, 0.61201435, 0.8894953 ]], dtype=float32)\n+array([[0.49336848, 0.6670474 , 0.4052163 ],\n+ [0.88962126, 0.23255025, 0.74816847],\n+ [0.05664055, 0.8301695 , 0.57331777],\n+ [0.8667834 , 0.08008794, 0.00297206],\n+ [0.09156414, 0.37417775, 0.40403557],\n+ [0.67630535, 0.925628 , 0.75310653],\n+ [0.52331305, 0.87062776, 0.14325531]], 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.