{"app_name":"Debian Janitor","binary_packages":[],"branch_url":"git+ssh://git@salsa.debian.org/python-team/packages/python-dynasor.git","build_log_highlight_lines":[2047,2115,2183,2435,2446,2492,2560,2628,2704,2781,2853,2926,2989,3062,3133,3208,3273,3339,3400,3461,3507,3542,3618,3687,3755,3829,3892,4016,4078,4140,4179,4272,4340,4408,4660,4671,4717,4785,4853,4929,5006,5078,5151,5214,5287,5358,5433,5498,5564,5625,5686,5732,5774,5857,5926,5994,6068,6131,6255,6317,6379,6418,6447,6448,6449,6489],"build_log_include_lines":[6474,6489],"build_log_line_count":6489,"build_log_name":"build.log","campaign":"unchanged","change_set":"d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1","codebase":"python-dynasor","codemod_log_name":"codemod.log","command":"DEB_UPDATE_CHANGELOG=auto true","current_year":"2026","description":"Unidentified error: ","failure_excerpt":{"full_log_url":"/unchanged/c/python-dynasor/d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1/logs/build.log","highlighted_indices":[3124],"lines":["","","Unpack source","-------------","","Format: 3.0 (quilt)","Source: python-dynasor","Binary: python3-dynasor","Architecture: all","Version: 2.3-2~jan+unchanged1","Maintainer: Debian Python Team <team+python@tracker.debian.org>","Uploaders: Debian PaN Maintainers <debian-pan-maintainers@alioth-lists.debian.net>, Roland Mas <lolando@debian.org>","Homepage: https://dynasor.materialsmodeling.org/","Standards-Version: 4.7.4","Vcs-Browser: https://salsa.debian.org/python-team/packages/python-dynasor","Vcs-Git: https://salsa.debian.org/python-team/packages/python-dynasor.git","Testsuite: autopkgtest-pkg-pybuild","Build-Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3-all, python3-ase, python3-mdanalysis, python3-numba, python3-numpy, python3-pandas, python3-phonopy, python3-pytest <!nocheck>, python3-setuptools","Package-List:"," python3-dynasor deb python optional arch=all","Checksums-Sha1:"," 4ec1e2d99ff7636b5cea39731c975f4d72a06abb 13125165 python-dynasor_2.3.orig.tar.gz"," 7ff7eb4db60702311d2206c9991039bd3e5c61f0 2740 python-dynasor_2.3-2~jan+unchanged1.debian.tar.xz","Checksums-Sha256:"," afabfc902bd0fa3cf7b821a77bdec089ca5fecd4af7cffe31b741b1e2f2828ca 13125165 python-dynasor_2.3.orig.tar.gz"," 2398fb5e3c801ea9a0fe4f7d61719658841a84ef308a0177b148d0660db64360 2740 python-dynasor_2.3-2~jan+unchanged1.debian.tar.xz","Files:"," 3315da5b52e5107b2e1a8691bc49dcab 13125165 python-dynasor_2.3.orig.tar.gz"," 271700ea182009b0f76c642b7b64f5a8 2740 python-dynasor_2.3-2~jan+unchanged1.debian.tar.xz","","dpkg-source: warning: extracting unsigned source package (python-dynasor_2.3-2~jan+unchanged1.dsc)","dpkg-source: info: extracting python-dynasor in /build/reproducible-path/python-dynasor-2.3","dpkg-source: info: unpacking python-dynasor_2.3.orig.tar.gz","dpkg-source: info: unpacking python-dynasor_2.3-2~jan+unchanged1.debian.tar.xz","","clean up apt cache","------------------","","","Check disk space","----------------","","Sufficient free space for build","","User Environment","----------------","","APT_CONFIG=/var/lib/sbuild/apt.conf","HOME=/sbuild-nonexistent","LANG=C.UTF-8","LC_ALL=C.UTF-8","LOGNAME=sbuild","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games","SHELL=/bin/sh","SOURCE_DATE_EPOCH=1780565100","USER=sbuild","","dpkg-buildpackage","-----------------","","Command: dpkg-buildpackage --sanitize-env -us -uc","dpkg-buildpackage: info: source package python-dynasor","dpkg-buildpackage: info: source version 2.3-2~jan+unchanged1","dpkg-buildpackage: info: source distribution unchanged","dpkg-buildpackage: info: source changed by Jelmer Vernooij <jelmer@tyr.vpn.jelmer.uk>"," dpkg-source --before-build .","dpkg-buildpackage: info: host architecture amd64"," debian/rules clean","dh clean --buildsystem=pybuild","   dh_auto_clean -O--buildsystem=pybuild","   dh_autoreconf_clean -O--buildsystem=pybuild","   dh_clean -O--buildsystem=pybuild"," dpkg-source -b .","dpkg-source: info: using source format '3.0 (quilt)'","dpkg-source: info: building python-dynasor using existing ../python-dynasor_2.3.orig.tar.gz","dpkg-source: info: building python-dynasor in ../python-dynasor_2.3-2~jan+unchanged1.debian.tar.xz","dpkg-source: info: building python-dynasor in ../python-dynasor_2.3-2~jan+unchanged1.dsc"," debian/rules binary","dh binary --buildsystem=pybuild","   dh_update_autotools_config -O--buildsystem=pybuild","   dh_autoreconf -O--buildsystem=pybuild","   dh_auto_configure -O--buildsystem=pybuild","   dh_auto_build -O--buildsystem=pybuild","I: pybuild plugin_pyproject:142: Building wheel for python3.13 with \"build\" module","I: pybuild base:385: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13  ","* Building wheel...","running bdist_wheel","running build","running build_py","creating build/lib/dynasor","copying dynasor/units.py -> build/lib/dynasor","copying dynasor/sample.py -> build/lib/dynasor","copying dynasor/logging_tools.py -> build/lib/dynasor","copying dynasor/__init__.py -> build/lib/dynasor","copying dynasor/correlation_functions.py -> build/lib/dynasor","creating build/lib/dynasor/tools","copying dynasor/tools/acfs.py -> build/lib/dynasor/tools","copying dynasor/tools/damped_harmonic_oscillator.py -> build/lib/dynasor/tools","copying dynasor/tools/structures.py -> build/lib/dynasor/tools","copying dynasor/tools/__init__.py -> build/lib/dynasor/tools","creating build/lib/dynasor/core","copying dynasor/core/rho_j_q_numba.py -> build/lib/dynasor/core","copying dynasor/core/__init__.py -> build/lib/dynasor/core","copying dynasor/core/time_averager.py -> build/lib/dynasor/core","copying dynasor/core/reciprocal.py -> build/lib/dynasor/core","creating build/lib/dynasor/post_processing","copying dynasor/post_processing/x_ray_form_factors.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/electron_scattering_factors.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/filon.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/atomic_weighting.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/neutron_scattering_lengths.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/spherical_average.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/average_runs.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/weights.py -> build/lib/dynasor/post_processing","copying dynasor/post_processing/__init__.py -> build/lib/dynasor/post_processing","creating build/lib/dynasor/cli","copying dynasor/cli/main.py -> build/lib/dynasor/cli","copying dynasor/cli/__init__.py -> build/lib/dynasor/cli","creating build/lib/dynasor/qpoints","copying dynasor/qpoints/spherical_qpoints.py -> build/lib/dynasor/qpoints","copying dynasor/qpoints/tools.py -> build/lib/dynasor/qpoints","copying dynasor/qpoints/lattice.py -> build/lib/dynasor/qpoints","copying dynasor/qpoints/__init__.py -> build/lib/dynasor/qpoints","creating build/lib/dynasor/modes","copying dynasor/modes/complex_coordinate.py -> build/lib/dynasor/modes","copying dynasor/modes/project_modes.py -> build/lib/dynasor/modes","copying dynasor/modes/atoms.py -> build/lib/dynasor/modes","copying dynasor/modes/band.py -> build/lib/dynasor/modes","copying dynasor/modes/tools.py -> build/lib/dynasor/modes","copying dynasor/modes/qpoint.py -> build/lib/dynasor/modes","copying dynasor/modes/mode_projector.py -> build/lib/dynasor/modes","copying dynasor/modes/__init__.py -> build/lib/dynasor/modes","creating build/lib/dynasor/trajectory","copying dynasor/trajectory/lammps_trajectory_reader.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/atomic_indices.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/ase_trajectory_reader.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/extxyz_trajectory_reader.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/trajectory_frame.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/abstract_trajectory_reader.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/trajectory.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/__init__.py -> build/lib/dynasor/trajectory","copying dynasor/trajectory/mdanalysis_trajectory_reader.py -> build/lib/dynasor/trajectory","running egg_info","creating dynasor.egg-info","writing dynasor.egg-info/PKG-INFO","writing dependency_links to dynasor.egg-info/dependency_links.txt","writing entry points to dynasor.egg-info/entry_points.txt","writing requirements to dynasor.egg-info/requires.txt","writing top-level names to dynasor.egg-info/top_level.txt","writing manifest file 'dynasor.egg-info/SOURCES.txt'","reading manifest file 'dynasor.egg-info/SOURCES.txt'","adding license file 'LICENSE'","writing manifest file 'dynasor.egg-info/SOURCES.txt'","creating build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/compton-parameters-waasmaier-kirfel-1995.json -> build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/electron-parameters-ions-peng-1998.json -> build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/electron-parameters-kmax2-peng-1996.json -> build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/electron-parameters-kmax6-peng-1996.json -> build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/neutron_scattering_lengths.json -> build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/x-ray-parameters-itcc-2006.json -> build/lib/dynasor/post_processing/form-factors","copying dynasor/post_processing/form-factors/x-ray-parameters-waasmaier-kirfel-1995.json -> build/lib/dynasor/post_processing/form-factors","installing to build/bdist.linux-x86_64/wheel","running install","running install_lib","creating build/bdist.linux-x86_64/wheel","creating build/bdist.linux-x86_64/wheel/dynasor","creating build/bdist.linux-x86_64/wheel/dynasor/tools","copying build/lib/dynasor/tools/acfs.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/tools/damped_harmonic_oscillator.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/tools/structures.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/tools/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/units.py -> build/bdist.linux-x86_64/wheel/./dynasor","creating build/bdist.linux-x86_64/wheel/dynasor/core","copying build/lib/dynasor/core/rho_j_q_numba.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/core/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/core/time_averager.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/core/reciprocal.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/sample.py -> build/bdist.linux-x86_64/wheel/./dynasor","creating build/bdist.linux-x86_64/wheel/dynasor/post_processing","creating build/bdist.linux-x86_64/wheel/dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/x-ray-parameters-waasmaier-kirfel-1995.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/electron-parameters-kmax6-peng-1996.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/x-ray-parameters-itcc-2006.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/electron-parameters-kmax2-peng-1996.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/electron-parameters-ions-peng-1998.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/compton-parameters-waasmaier-kirfel-1995.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/neutron_scattering_lengths.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/x_ray_form_factors.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/electron_scattering_factors.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/filon.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/atomic_weighting.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/neutron_scattering_lengths.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/spherical_average.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/average_runs.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/weights.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","creating build/bdist.linux-x86_64/wheel/dynasor/cli","copying build/lib/dynasor/cli/main.py -> build/bdist.linux-x86_64/wheel/./dynasor/cli","copying build/lib/dynasor/cli/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/cli","creating build/bdist.linux-x86_64/wheel/dynasor/qpoints","copying build/lib/dynasor/qpoints/spherical_qpoints.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","copying build/lib/dynasor/qpoints/tools.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","copying build/lib/dynasor/qpoints/lattice.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","copying build/lib/dynasor/qpoints/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","creating build/bdist.linux-x86_64/wheel/dynasor/modes","copying build/lib/dynasor/modes/complex_coordinate.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/project_modes.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/atoms.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/band.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/tools.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/qpoint.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/mode_projector.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","creating build/bdist.linux-x86_64/wheel/dynasor/trajectory","copying build/lib/dynasor/trajectory/lammps_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/atomic_indices.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/ase_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/extxyz_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/trajectory_frame.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/abstract_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/trajectory.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/mdanalysis_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/logging_tools.py -> build/bdist.linux-x86_64/wheel/./dynasor","copying build/lib/dynasor/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor","copying build/lib/dynasor/correlation_functions.py -> build/bdist.linux-x86_64/wheel/./dynasor","running install_egg_info","Copying dynasor.egg-info to build/bdist.linux-x86_64/wheel/./dynasor-2.3.egg-info","running install_scripts","creating build/bdist.linux-x86_64/wheel/dynasor-2.3.dist-info/WHEEL","creating '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/.tmp-qkga_ha_/dynasor-2.3-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it","adding 'dynasor/__init__.py'","adding 'dynasor/correlation_functions.py'","adding 'dynasor/logging_tools.py'","adding 'dynasor/sample.py'","adding 'dynasor/units.py'","adding 'dynasor/cli/__init__.py'","adding 'dynasor/cli/main.py'","adding 'dynasor/core/__init__.py'","adding 'dynasor/core/reciprocal.py'","adding 'dynasor/core/rho_j_q_numba.py'","adding 'dynasor/core/time_averager.py'","adding 'dynasor/modes/__init__.py'","adding 'dynasor/modes/atoms.py'","adding 'dynasor/modes/band.py'","adding 'dynasor/modes/complex_coordinate.py'","adding 'dynasor/modes/mode_projector.py'","adding 'dynasor/modes/project_modes.py'","adding 'dynasor/modes/qpoint.py'","adding 'dynasor/modes/tools.py'","adding 'dynasor/post_processing/__init__.py'","adding 'dynasor/post_processing/atomic_weighting.py'","adding 'dynasor/post_processing/average_runs.py'","adding 'dynasor/post_processing/electron_scattering_factors.py'","adding 'dynasor/post_processing/filon.py'","adding 'dynasor/post_processing/neutron_scattering_lengths.py'","adding 'dynasor/post_processing/spherical_average.py'","adding 'dynasor/post_processing/weights.py'","adding 'dynasor/post_processing/x_ray_form_factors.py'","adding 'dynasor/post_processing/form-factors/compton-parameters-waasmaier-kirfel-1995.json'","adding 'dynasor/post_processing/form-factors/electron-parameters-ions-peng-1998.json'","adding 'dynasor/post_processing/form-factors/electron-parameters-kmax2-peng-1996.json'","adding 'dynasor/post_processing/form-factors/electron-parameters-kmax6-peng-1996.json'","adding 'dynasor/post_processing/form-factors/neutron_scattering_lengths.json'","adding 'dynasor/post_processing/form-factors/x-ray-parameters-itcc-2006.json'","adding 'dynasor/post_processing/form-factors/x-ray-parameters-waasmaier-kirfel-1995.json'","adding 'dynasor/qpoints/__init__.py'","adding 'dynasor/qpoints/lattice.py'","adding 'dynasor/qpoints/spherical_qpoints.py'","adding 'dynasor/qpoints/tools.py'","adding 'dynasor/tools/__init__.py'","adding 'dynasor/tools/acfs.py'","adding 'dynasor/tools/damped_harmonic_oscillator.py'","adding 'dynasor/tools/structures.py'","adding 'dynasor/trajectory/__init__.py'","adding 'dynasor/trajectory/abstract_trajectory_reader.py'","adding 'dynasor/trajectory/ase_trajectory_reader.py'","adding 'dynasor/trajectory/atomic_indices.py'","adding 'dynasor/trajectory/extxyz_trajectory_reader.py'","adding 'dynasor/trajectory/lammps_trajectory_reader.py'","adding 'dynasor/trajectory/mdanalysis_trajectory_reader.py'","adding 'dynasor/trajectory/trajectory.py'","adding 'dynasor/trajectory/trajectory_frame.py'","adding 'dynasor-2.3.dist-info/licenses/LICENSE'","adding 'dynasor-2.3.dist-info/METADATA'","adding 'dynasor-2.3.dist-info/WHEEL'","adding 'dynasor-2.3.dist-info/entry_points.txt'","adding 'dynasor-2.3.dist-info/top_level.txt'","adding 'dynasor-2.3.dist-info/RECORD'","removing build/bdist.linux-x86_64/wheel","Successfully built dynasor-2.3-py3-none-any.whl","I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.13 with \"installer\" module","I: pybuild plugin_pyproject:142: Building wheel for python3.14 with \"build\" module","I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14  ","* Building wheel...","running bdist_wheel","running build","running build_py","running egg_info","writing dynasor.egg-info/PKG-INFO","writing dependency_links to dynasor.egg-info/dependency_links.txt","writing entry points to dynasor.egg-info/entry_points.txt","writing requirements to dynasor.egg-info/requires.txt","writing top-level names to dynasor.egg-info/top_level.txt","reading manifest file 'dynasor.egg-info/SOURCES.txt'","adding license file 'LICENSE'","writing manifest file 'dynasor.egg-info/SOURCES.txt'","installing to build/bdist.linux-x86_64/wheel","running install","running install_lib","creating build/bdist.linux-x86_64/wheel","creating build/bdist.linux-x86_64/wheel/dynasor","creating build/bdist.linux-x86_64/wheel/dynasor/tools","copying build/lib/dynasor/tools/acfs.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/tools/damped_harmonic_oscillator.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/tools/structures.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/tools/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/tools","copying build/lib/dynasor/units.py -> build/bdist.linux-x86_64/wheel/./dynasor","creating build/bdist.linux-x86_64/wheel/dynasor/core","copying build/lib/dynasor/core/rho_j_q_numba.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/core/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/core/time_averager.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/core/reciprocal.py -> build/bdist.linux-x86_64/wheel/./dynasor/core","copying build/lib/dynasor/sample.py -> build/bdist.linux-x86_64/wheel/./dynasor","creating build/bdist.linux-x86_64/wheel/dynasor/post_processing","creating build/bdist.linux-x86_64/wheel/dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/x-ray-parameters-waasmaier-kirfel-1995.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/electron-parameters-kmax6-peng-1996.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/x-ray-parameters-itcc-2006.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/electron-parameters-kmax2-peng-1996.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/electron-parameters-ions-peng-1998.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/compton-parameters-waasmaier-kirfel-1995.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/form-factors/neutron_scattering_lengths.json -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing/form-factors","copying build/lib/dynasor/post_processing/x_ray_form_factors.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/electron_scattering_factors.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/filon.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/atomic_weighting.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/neutron_scattering_lengths.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/spherical_average.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/average_runs.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/weights.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","copying build/lib/dynasor/post_processing/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/post_processing","creating build/bdist.linux-x86_64/wheel/dynasor/cli","copying build/lib/dynasor/cli/main.py -> build/bdist.linux-x86_64/wheel/./dynasor/cli","copying build/lib/dynasor/cli/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/cli","creating build/bdist.linux-x86_64/wheel/dynasor/qpoints","copying build/lib/dynasor/qpoints/spherical_qpoints.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","copying build/lib/dynasor/qpoints/tools.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","copying build/lib/dynasor/qpoints/lattice.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","copying build/lib/dynasor/qpoints/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/qpoints","creating build/bdist.linux-x86_64/wheel/dynasor/modes","copying build/lib/dynasor/modes/complex_coordinate.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/project_modes.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/atoms.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/band.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/tools.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/qpoint.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/mode_projector.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","copying build/lib/dynasor/modes/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/modes","creating build/bdist.linux-x86_64/wheel/dynasor/trajectory","copying build/lib/dynasor/trajectory/lammps_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/atomic_indices.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/ase_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/extxyz_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/trajectory_frame.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/abstract_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/trajectory.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/trajectory/mdanalysis_trajectory_reader.py -> build/bdist.linux-x86_64/wheel/./dynasor/trajectory","copying build/lib/dynasor/logging_tools.py -> build/bdist.linux-x86_64/wheel/./dynasor","copying build/lib/dynasor/__init__.py -> build/bdist.linux-x86_64/wheel/./dynasor","copying build/lib/dynasor/correlation_functions.py -> build/bdist.linux-x86_64/wheel/./dynasor","running install_egg_info","Copying dynasor.egg-info to build/bdist.linux-x86_64/wheel/./dynasor-2.3.egg-info","running install_scripts","creating build/bdist.linux-x86_64/wheel/dynasor-2.3.dist-info/WHEEL","creating '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/.tmp-bwexl9vo/dynasor-2.3-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it","adding 'dynasor/__init__.py'","adding 'dynasor/correlation_functions.py'","adding 'dynasor/logging_tools.py'","adding 'dynasor/sample.py'","adding 'dynasor/units.py'","adding 'dynasor/cli/__init__.py'","adding 'dynasor/cli/main.py'","adding 'dynasor/core/__init__.py'","adding 'dynasor/core/reciprocal.py'","adding 'dynasor/core/rho_j_q_numba.py'","adding 'dynasor/core/time_averager.py'","adding 'dynasor/modes/__init__.py'","adding 'dynasor/modes/atoms.py'","adding 'dynasor/modes/band.py'","adding 'dynasor/modes/complex_coordinate.py'","adding 'dynasor/modes/mode_projector.py'","adding 'dynasor/modes/project_modes.py'","adding 'dynasor/modes/qpoint.py'","adding 'dynasor/modes/tools.py'","adding 'dynasor/post_processing/__init__.py'","adding 'dynasor/post_processing/atomic_weighting.py'","adding 'dynasor/post_processing/average_runs.py'","adding 'dynasor/post_processing/electron_scattering_factors.py'","adding 'dynasor/post_processing/filon.py'","adding 'dynasor/post_processing/neutron_scattering_lengths.py'","adding 'dynasor/post_processing/spherical_average.py'","adding 'dynasor/post_processing/weights.py'","adding 'dynasor/post_processing/x_ray_form_factors.py'","adding 'dynasor/post_processing/form-factors/compton-parameters-waasmaier-kirfel-1995.json'","adding 'dynasor/post_processing/form-factors/electron-parameters-ions-peng-1998.json'","adding 'dynasor/post_processing/form-factors/electron-parameters-kmax2-peng-1996.json'","adding 'dynasor/post_processing/form-factors/electron-parameters-kmax6-peng-1996.json'","adding 'dynasor/post_processing/form-factors/neutron_scattering_lengths.json'","adding 'dynasor/post_processing/form-factors/x-ray-parameters-itcc-2006.json'","adding 'dynasor/post_processing/form-factors/x-ray-parameters-waasmaier-kirfel-1995.json'","adding 'dynasor/qpoints/__init__.py'","adding 'dynasor/qpoints/lattice.py'","adding 'dynasor/qpoints/spherical_qpoints.py'","adding 'dynasor/qpoints/tools.py'","adding 'dynasor/tools/__init__.py'","adding 'dynasor/tools/acfs.py'","adding 'dynasor/tools/damped_harmonic_oscillator.py'","adding 'dynasor/tools/structures.py'","adding 'dynasor/trajectory/__init__.py'","adding 'dynasor/trajectory/abstract_trajectory_reader.py'","adding 'dynasor/trajectory/ase_trajectory_reader.py'","adding 'dynasor/trajectory/atomic_indices.py'","adding 'dynasor/trajectory/extxyz_trajectory_reader.py'","adding 'dynasor/trajectory/lammps_trajectory_reader.py'","adding 'dynasor/trajectory/mdanalysis_trajectory_reader.py'","adding 'dynasor/trajectory/trajectory.py'","adding 'dynasor/trajectory/trajectory_frame.py'","adding 'dynasor-2.3.dist-info/licenses/LICENSE'","adding 'dynasor-2.3.dist-info/METADATA'","adding 'dynasor-2.3.dist-info/WHEEL'","adding 'dynasor-2.3.dist-info/entry_points.txt'","adding 'dynasor-2.3.dist-info/top_level.txt'","adding 'dynasor-2.3.dist-info/RECORD'","removing build/bdist.linux-x86_64/wheel","Successfully built dynasor-2.3-py3-none-any.whl","I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.14 with \"installer\" module","   dh_auto_test -O--buildsystem=pybuild","I: pybuild base:385: cd /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build; python3.13 -m pytest -k 'not test_integration_static_structure_factor'","============================= test session starts ==============================","platform linux -- Python 3.13.14, pytest-9.1.1, pluggy-1.6.0","rootdir: /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build","configfile: pyproject.toml","plugins: typeguard-4.4.4","collected 174 items / 1 deselected / 173 selected","","tests/filon/test_filon.py ...                                            [  1%]","tests/modes/test_modes.py .                                              [  2%]","tests/modes/test_regression.py .                                         [  2%]","tests/test_SED.py FFF                                                    [  4%]","tests/test_average_independent_samples.py ..                             [  5%]","tests/test_cli.py F                                                      [  6%]","tests/test_dho.py ....                                                   [  8%]","tests/test_dynasor_API.py FFF.FF                                         [ 12%]","tests/test_integration.py F                                              [ 12%]","tests/test_lattice.py ..                                                 [ 13%]","tests/test_logging.py F                                                  [ 14%]","tests/test_normalization.py FF                                           [ 15%]","tests/test_numba.py .                                                    [ 16%]","tests/test_parse_gromacs_index_file.py ...                               [ 17%]","tests/test_qpoints.py .......                                            [ 21%]","tests/test_regression_vs_old_cmdline_results.py F                        [ 22%]","tests/test_sample_class.py ...........                                   [ 28%]","tests/test_spherical_average.py ......                                   [ 32%]","tests/test_time_averager.py .                                            [ 32%]","tests/test_tools.py ......                                               [ 36%]","tests/test_trajectory_and_window_iterator.py FFF...FFFFFF                [ 43%]","tests/test_trajectory_frame.py .FF                                       [ 45%]","tests/test_units.py .                                                    [ 45%]","tests/test_weighting.py ................................................ [ 73%]",".................                                                        [ 83%]","tests/test_weights.py ...                                                [ 84%]","tests/trajectory_reader/test_ase_trajectory_reader.py .......            [ 89%]","tests/trajectory_reader/test_extxyz_trajectory_reader.py ..FFFFF         [ 93%]","tests/trajectory_reader/test_lammps_trajectory_reader.py ......          [ 96%]","tests/trajectory_reader/test_mdanalysis_trajectory_reader.py ......      [100%]","","=================================== FAILURES ===================================","___________________________________ test_sed ___________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278ae8050>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","prim = Atoms(symbols='CsPbBr3', pbc=True, cell=[6.0, 6.0, 6.0])","","    def test_sed(traj_fname_xyz_with_velocities, prim):","    ","        # setup","        size = 6","        dt = 2.5",">       traj = Trajectory(traj_fname_xyz_with_velocities, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_SED.py:42: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278ae8050>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:00: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:00: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_________________________ test_sed_without_velocities __________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a3c2490>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz'","prim = Atoms(symbols='CsPbBr3', pbc=True, cell=[6.0, 6.0, 6.0])","","    def test_sed_without_velocities(traj_fname_xyz, prim):","        size = 6","        dt = 2.5","        atoms_ideal = prim.repeat(size)","        q_points = np.array([a * np.array([2 * np.pi / 6.0, 0, 0]) for a in np.linspace(0, 1, size+1)])",">       traj = Trajectory(traj_fname_xyz, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_SED.py:82: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a3c2490>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:00: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:00: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_sed_with_incorrect_supercell _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727aefbb10>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz'","prim = Atoms(symbols='CsPbBr3', pbc=True, cell=[6.0, 6.0, 6.0])","","    def test_sed_with_incorrect_supercell(traj_fname_xyz, prim):","        size = 6","        dt = 2.5","        atoms_ideal = prim.repeat(size)","        del atoms_ideal[0]","        q_points = np.array([a * np.array([2 * np.pi / 6.0, 0, 0]) for a in np.linspace(0, 1, size+1)])",">       traj = Trajectory(traj_fname_xyz, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_SED.py:94: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727aefbb10>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:00: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:00: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________________ test_dynasor_CLI _______________________________","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_dynasor_CLI(filenames):","        # input parameters","        time_window = 8","        max_frames = 100000","        dt = 100","    ","        q_max = 40","        q_bins = 20","        max_q_points = 10000","    ","        traj_fname, index_fname = filenames","    ","        tmpfile = NamedTemporaryFile(suffix='.npz', delete=False)","    ","        # setup dynasor command","        flags = []","        flags.append(f'-f {traj_fname} -n {index_fname}')","        flags.append('--trajectory-format=extxyz')","    ","        flags.append(f'--q-bins={q_bins}')","        flags.append(f'--q-max={q_max}')","        flags.append(f'--max-q-points={max_q_points}')","    ","        flags.append(f'--time-window={time_window}')","        flags.append(f'--dt={dt}')","        flags.append(f'--max-frames={max_frames}')","    ","        flags.append(f'--outfile={tmpfile.name}')","        flags.append('--calculate-incoherent')","        flags.append('--calculate-currents')","    ","        flags_str = ' '.join(flags)","    ","        # Run dynasor and read results","        command = 'dynasor ' + flags_str","        os.system(command)","    ",">       sample_cli = read_sample_from_npz(tmpfile.name)","                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_cli.py:58: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/sample.py:399: in read_sample_from_npz","    data_read = np.load(fname, allow_pickle=True)","                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","file = '/tmp/tmp7rf1vd26.npz', mmap_mode = None, allow_pickle = True","fix_imports = True, encoding = 'ASCII', max_header_size = 10000","","    @set_module('numpy')","    def load(file, mmap_mode=None, allow_pickle=False, fix_imports=True,","             encoding='ASCII', *, max_header_size=_MAX_HEADER_SIZE):","        \"\"\"","        Load arrays or pickled objects from ``.npy``, ``.npz`` or pickled files.","    ","        .. warning:: Loading files that contain object arrays uses the ``pickle``","                     module, which is not secure against erroneous or maliciously","                     constructed data. Consider passing ``allow_pickle=False`` to","                     load data that is known not to contain object arrays for the","                     safer handling of untrusted sources.","    ","        Parameters","        ----------","        file : file-like object, string, or pathlib.Path","            The file to read. File-like objects must support the","            ``seek()`` and ``read()`` methods and must always","            be opened in binary mode.  Pickled files require that the","            file-like object support the ``readline()`` method as well.","        mmap_mode : {None, 'r+', 'r', 'w+', 'c'}, optional","            If not None, then memory-map the file, using the given mode (see","            `numpy.memmap` for a detailed description of the modes).  A","            memory-mapped array is kept on disk. However, it can be accessed","            and sliced like any ndarray.  Memory mapping is especially useful","            for accessing small fragments of large files without reading the","            entire file into memory.","        allow_pickle : bool, optional","            Allow loading pickled object arrays stored in npy files. Reasons for","            disallowing pickles include security, as loading pickled data can","            execute arbitrary code. If pickles are disallowed, loading object","            arrays will fail. Default: False","        fix_imports : bool, optional","            Only useful when loading Python 2 generated pickled files,","            which includes npy/npz files containing object arrays. If `fix_imports`","            is True, pickle will try to map the old Python 2 names to the new names","            used in Python 3.","        encoding : str, optional","            What encoding to use when reading Python 2 strings. Only useful when","            loading Python 2 generated pickled files, which includes","            npy/npz files containing object arrays. Values other than 'latin1',","            'ASCII', and 'bytes' are not allowed, as they can corrupt numerical","            data. Default: 'ASCII'","        max_header_size : int, optional","            Maximum allowed size of the header.  Large headers may not be safe","            to load securely and thus require explicitly passing a larger value.","            See :py:func:`ast.literal_eval()` for details.","            This option is ignored when `allow_pickle` is passed.  In that case","            the file is by definition trusted and the limit is unnecessary.","    ","        Returns","        -------","        result : array, tuple, dict, etc.","            Data stored in the file. For ``.npz`` files, the returned instance","            of NpzFile class must be closed to avoid leaking file descriptors.","    ","        Raises","        ------","        OSError","            If the input file does not exist or cannot be read.","        UnpicklingError","            If ``allow_pickle=True``, but the file cannot be loaded as a pickle.","        ValueError","            The file contains an object array, but ``allow_pickle=False`` given.","        EOFError","            When calling ``np.load`` multiple times on the same file handle,","            if all data has already been read","    ","        See Also","        --------","        save, savez, savez_compressed, loadtxt","        memmap : Create a memory-map to an array stored in a file on disk.","        lib.format.open_memmap : Create or load a memory-mapped ``.npy`` file.","    ","        Notes","        -----","        - If the file contains pickle data, then whatever object is stored","          in the pickle is returned.","        - If the file is a ``.npy`` file, then a single array is returned.","        - If the file is a ``.npz`` file, then a dictionary-like object is","          returned, containing ``{filename: array}`` key-value pairs, one for","          each file in the archive.","        - If the file is a ``.npz`` file, the returned value supports the","          context manager protocol in a similar fashion to the open function::","    ","            with load('foo.npz') as data:","                a = data['a']","    ","          The underlying file descriptor is closed when exiting the 'with'","          block.","    ","        Examples","        --------","        >>> import numpy as np","    ","        Store data to disk, and load it again:","    ","        >>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))","        >>> np.load('/tmp/123.npy')","        array([[1, 2, 3],","               [4, 5, 6]])","    ","        Store compressed data to disk, and load it again:","    ","        >>> a=np.array([[1, 2, 3], [4, 5, 6]])","        >>> b=np.array([1, 2])","        >>> np.savez('/tmp/123.npz', a=a, b=b)","        >>> data = np.load('/tmp/123.npz')","        >>> data['a']","        array([[1, 2, 3],","               [4, 5, 6]])","        >>> data['b']","        array([1, 2])","        >>> data.close()","    ","        Mem-map the stored array, and then access the second row","        directly from disk:","    ","        >>> X = np.load('/tmp/123.npy', mmap_mode='r')","        >>> X[1, :]","        memmap([4, 5, 6])","    ","        \"\"\"","        if encoding not in ('ASCII', 'latin1', 'bytes'):","            # The 'encoding' value for pickle also affects what encoding","            # the serialized binary data of NumPy arrays is loaded","            # in. Pickle does not pass on the encoding information to","            # NumPy. The unpickling code in numpy._core.multiarray is","            # written to assume that unicode data appearing where binary","            # should be is in 'latin1'. 'bytes' is also safe, as is 'ASCII'.","            #","            # Other encoding values can corrupt binary data, and we","            # purposefully disallow them. For the same reason, the errors=","            # argument is not exposed, as values other than 'strict'","            # result can similarly silently corrupt numerical data.","            raise ValueError(\"encoding must be 'ASCII', 'latin1', or 'bytes'\")","    ","        pickle_kwargs = {'encoding': encoding, 'fix_imports': fix_imports}","    ","        with contextlib.ExitStack() as stack:","            if hasattr(file, 'read'):","                fid = file","                own_fid = False","            else:","                fid = stack.enter_context(open(os.fspath(file), \"rb\"))","                own_fid = True","    ","            # Code to distinguish from NumPy binary files and pickles.","            _ZIP_PREFIX = b'PK\\x03\\x04'","            _ZIP_SUFFIX = b'PK\\x05\\x06'  # empty zip files start with this","            N = len(format.MAGIC_PREFIX)","            magic = fid.read(N)","            if not magic:",">               raise EOFError(\"No data left in file\")","E               EOFError: No data left in file","","/usr/lib/python3/dist-packages/numpy/lib/_npyio_impl.py:463: EOFError","----------------------------- Captured stderr call -----------------------------","Traceback (most recent call last):","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 96, in _get_next","    atoms = next(self._generator_xyz)","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 35, in iread","    chunk = next(chunk_iterator)","  File \"/usr/lib/python3/dist-packages/ase/io/extxyz.py\", line 559, in ixyzchunks","    natoms = int(line.strip()[0])","ValueError: invalid literal for int() with base 10: 'B'","","During handling of the above exception, another exception occurred:","","Traceback (most recent call last):","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/scripts/dynasor\", line 8, in <module>","    sys.exit(main())","             ~~~~^^","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/dynasor/cli/main.py\", line 176, in main","    traj = Trajectory(args.trajectory,","                      trajectory_format=args.trajectory_format,","    ...<4 lines>...","                      frame_step=args.step,","                      )","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/dynasor/trajectory/trajectory.py\", line 111, in __init__","    frame0 = next(self._reader_obj)","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 123, in __next__","    self._get_next()","    ~~~~~~~~~~~~~~^^","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 100, in _get_next","    raise StopIteration","StopIteration","______________________ test_API_dynamic_structure_factor _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278de2ea0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_dynamic_structure_factor(traj_fname_xyz, q_points):",">       traj = Trajectory(traj_fname_xyz, 'extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:38: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278de2ea0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:02: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:02: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_API_dynamic_structure_factor_selfpart __________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f72784e8fc0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_dynamic_structure_factor_selfpart(traj_fname_xyz, q_points):",">       traj = Trajectory(traj_fname_xyz, 'extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:44: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f72784e8fc0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:02: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:02: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________ test_API_static_structure_factor _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a6b6690>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_long = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_static_structure_factor(traj_fname_xyz_long, q_points):","        # setup","        n_atoms = 320","        n_A = 50","        atomic_indices = dict()","        atomic_indices['A'] = np.arange(0, n_A, 1)","        atomic_indices['B'] = np.arange(n_A, n_atoms, 1)","    ","        # calculate static",">       traj = Trajectory(","            traj_fname_xyz_long, trajectory_format='extxyz', atomic_indices=atomic_indices)","","tests/test_dynasor_API.py:59: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a6b6690>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:02: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:02: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_API_dynamic_step _____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727af03350>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_long = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_dynamic_step(traj_fname_xyz_long, q_points):","        \"\"\"","        Ensure that setting step > 1 affects the resulting time","        \"\"\"","        dt = 1.0","        time_window = 4","        step = 1","    ","        for step in [1, 2, 3]:","    ",">           traj = Trajectory(traj_fname_xyz_long, 'extxyz', frame_step=step)","                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:111: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727af03350>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:05: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:05: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________ test_raises_with_bad_input_args ________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727af02250>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_long = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_raises_with_bad_input_args(traj_fname_xyz_long, q_points):","        time_window = 4","        dt = 1.0","    ","        # q-points wrong shape",">       traj = Trajectory(traj_fname_xyz_long, 'extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:127: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727af02250>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:05: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:05: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_integration_dynamic_structure_factor ___________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727ab51550>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","","    def test_integration_dynamic_structure_factor(traj_fname):","        \"\"\" Test the full dynasor workflow for dynamic structure factor \"\"\"","    ","        # parameters","        q_max = 2.5","        max_points = 35","        q_bins = 6","        window_size = 4","        dt = 2.1","    ","        # run dynasor",">       traj = Trajectory(traj_fname, trajectory_format='extxyz', atomic_indices='read_from_trajectory')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_integration.py:92: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727ab51550>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:05: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:05: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_set_logging_level ____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727ab51a50>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","","    def test_set_logging_level(traj_fname_xyz):","    ","        # Log Trajectory output to StringIO stream","        for handler in logger.handlers:","            logger.removeHandler(handler)","        stream = StringIO()","        stream_handler = logging.StreamHandler(stream)","        logger.addHandler(stream_handler)",">       Trajectory(traj_fname_xyz, 'extxyz')","","tests/test_logging.py:25: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727ab51a50>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","_________________ test_normalization_dynamic_structure_factor __________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727aad6210>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_normalization_dynamic_structure_factor():","    ","        # traj index files","        this_dir = os.path.dirname(__file__)","        traj_fname = os.path.join(","            this_dir, 'trajectory_reader/trajectory_files/dump_long_with_velocities.xyz')","        index_fname = os.path.join(this_dir, 'trajectory_reader/trajectory_files/index_file_dump_long')","    ","        # input parameters","        time_window = 4","        dt = 100","        q_max = 40","        max_points = 500","    ","        # setup","        traj_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=traj_format)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_normalization.py:25: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727aad6210>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_normalization_static_structure_factor __________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727aad59a0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_normalization_static_structure_factor():","    ","        # traj index files","        this_dir = os.path.dirname(__file__)","        traj_fname = os.path.join(","            this_dir, 'trajectory_reader/trajectory_files/dump_long_with_velocities.xyz')","        index_fname = os.path.join(this_dir, 'trajectory_reader/trajectory_files/index_file_dump_long')","    ","        # input parameters","        q_max = 40","        max_points = 500","    ","        # setup","        traj_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=traj_format)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_normalization.py:94: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727aad59a0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________ test_regression_test_with_old_cmdline _____________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a8934d0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_regression_test_with_old_cmdline():","        # traj index files","        this_dir = os.path.dirname(__file__)","        traj_fname = os.path.join(","            this_dir, 'trajectory_reader/trajectory_files/dump_long_with_velocities.xyz')","        index_fname = os.path.join(this_dir, 'trajectory_reader/trajectory_files/index_file_dump_long')","    ","        # number of atoms, needed for normalization since normalization is now different","        n_atoms = 320","        atoms_counts = dict(Cs=64, Pb=64, Br=192)","    ","        # input parameters","        time_window = 6","        dt = 100","        q_max = 4  # Previously in 2*pi*nm^{-1}, now in 2*pi*Å^{-1}","        q_bins = 20","    ","        # run dynasor",">       traj = Trajectory(traj_fname, trajectory_format='extxyz', atomic_indices=index_fname)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_regression_vs_old_cmdline_results.py:29: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a8934d0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","________________________________ test_traj_step ________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278bba350>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_traj_step(filenames):","        traj_fname, index_fname = filenames","    ","        # full traj","        step = 1","        trajectory_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format, frame_step=step)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:44: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278bba350>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________________ test_index_file ________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727846a410>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_index_file(filenames):","        traj_fname, index_fname = filenames","    ","        n_atoms = 320","        trajectory_format = 'extxyz'","    ","        # atomic_indices is None",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:65: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727846a410>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_filename_property ____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a9a8050>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_filename_property(filenames):","        traj_fname, index_fname = filenames",">       traj = Trajectory(traj_fname, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:95: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a9a8050>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","________________________ test_trajectory_repr_html_str _________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727813b290>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_trajectory_repr_html_str(filenames):","        traj_fname, index_fname = filenames",">       traj = Trajectory(traj_fname, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:124: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727813b290>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_____________________ test_trajectory_frame_repr_html_str ______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278bd6990>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_trajectory_frame_repr_html_str(filenames):","        traj_fname, index_fname = filenames",">       traj = Trajectory(traj_fname, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:148: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278bd6990>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_trajectory_with_changing_cell ______________________","concurrent.futures.process._RemoteTraceback: ","\"\"\"","Traceback (most recent call last):","  File \"/usr/lib/python3.13/multiprocessing/queues.py\", line 262, in _feed","    obj = _ForkingPickler.dumps(obj)","  File \"/usr/lib/python3.13/multiprocessing/reduction.py\", line 51, in dumps","    cls(buf, protocol).dump(obj)","    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^","TypeError: cannot pickle 'TextIOWrapper' instances","\"\"\"","","The above exception was the direct cause of the following exception:","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278bd50d0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:56: in iread","    atoms = res.result()","            ^^^^^^^^^^^^","/usr/lib/python3.13/concurrent/futures/_base.py:453: in result","    return self.__get_result()","           ^^^^^^^^^^^^^^^^^^^","/usr/lib/python3.13/concurrent/futures/_base.py:402: in __get_result","    raise self._exception","/usr/lib/python3.13/multiprocessing/queues.py:262: in _feed","    obj = _ForkingPickler.dumps(obj)","          ^^^^^^^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","cls = <class 'multiprocessing.reduction.ForkingPickler'>","obj = <concurrent.futures.process._CallItem object at 0x7f727a7f9d30>","protocol = None","","    @classmethod","    def dumps(cls, obj, protocol=None):","        buf = io.BytesIO()",">       cls(buf, protocol).dump(obj)","E       TypeError: cannot pickle 'TextIOWrapper' instances","","/usr/lib/python3.13/multiprocessing/reduction.py:51: TypeError","","During handling of the above exception, another exception occurred:","","    def test_trajectory_with_changing_cell():","    ","        # write dummy file","        s = b\"\"\"2","    Lattice=\"4.05 0.0 0.0 0.0 4.05 0.0 0.0 0.0 4.05\" Properties=species:S:1:pos:R:3 pbc=\"T T T\"","    Al       0.00000000       0.00000000       0.00000000","    Al       0.00000000       2.02500000       2.02500000","    2","    Lattice=\"4.051 0.0 0.0 0.0 4.05 0.0 0.0 0.0 4.05\" Properties=species:S:1:pos:R:3 pbc=\"T T T\"","    Al       0.00000000       0.00000000       0.00000000","    Al       0.00000000       2.02500000       2.02500000","    2","    Lattice=\"4.05 0.0 0.0 0.0 4.05 0.0 0.0 0.0 4.05\" Properties=species:S:1:pos:R:3 pbc=\"T T T\"","    Al       0.00000000       0.00000000       0.00000000","    Al       0.00000000       2.02500000       2.02500000\"\"\"","        f = tempfile.NamedTemporaryFile(delete=False)","        f.write(s)","        f.seek(0)","    ","        with pytest.raises(ValueError):",">           Trajectory(f.name, trajectory_format='extxyz')","","tests/test_trajectory_and_window_iterator.py:184: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278bd50d0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________________ test_windowiterator_stride __________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a800730>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_windowiterator_stride(filenames):","        traj_fname, index_fname = filenames","    ","        window_size = 4","        max_frames = 12","        trajectory_format = 'extxyz'","    ","        # full traj","        step = 1","        stride = 1",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format,","                          frame_step=step, frame_stop=max_frames)","","tests/test_trajectory_and_window_iterator.py:197: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a800730>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_large_window_step ____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a803b10>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_large_window_step(filenames):","        # test when window step is larger than window size","    ","        traj_fname, index_fname = filenames","        max_frames = 20","        frame_step = 1","        window_size = 5","        window_step = 7","        trajectory_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format,","                          frame_step=frame_step, frame_stop=max_frames)","","tests/test_trajectory_and_window_iterator.py:264: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a803b10>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_invalid_inputs_to_trajectory _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a844e60>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_invalid_inputs_to_trajectory(filenames):","        traj_fname, index_fname = filenames","        trajectory_format = 'extxyz'","    ","        frame_step = -1","        with pytest.raises(ValueError, match=r'frame_step should be positive'):","            Trajectory(traj_fname, trajectory_format=trajectory_format, frame_step=frame_step)","    ","        frame_start = -1","        with pytest.raises(ValueError, match=r'frame_start should be positive'):","            Trajectory(traj_fname, trajectory_format=trajectory_format, frame_start=frame_start)","    ","        # max of atomic indices exceeds number of atoms","        atomic_indices = dict()","        atomic_indices['Cs'] = [1, 2, 3, 4, 1100]","        with pytest.raises(ValueError, match=r'index in atomic_indices exceeds number of atoms'):",">           Trajectory(traj_fname, trajectory_format=trajectory_format, atomic_indices=atomic_indices)","","tests/test_trajectory_and_window_iterator.py:292: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a844e60>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","___________________________________ test_str ___________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a6c2dd0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_str():","        atomic_indices = dict()","        atomic_indices['Cs'] = np.arange(0, 20)","        atomic_indices['Pb'] = np.arange(50, 100)","    ","        # No velocities",">       traj = Trajectory('tests/trajectory_reader/trajectory_files/dump.xyz',","                          trajectory_format='extxyz', atomic_indices=atomic_indices)","","tests/test_trajectory_frame.py:48: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a6c2dd0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_read_indices_from_trajectory _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278b407d0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_read_indices_from_trajectory():","        # Check that error is raised when trying to read atomic_indices from reader and file type","        # combination that doesn't support this","        with pytest.raises(ValueError, match='Could not read atomic indices from the trajectory.'):","            traj = Trajectory('tests/trajectory_reader/trajectory_files/water_10snapshots.xtc',","                              trajectory_format='xtc', atomic_indices='read_from_trajectory')","    ","        # Check that error is raised when trying to read atomic_indices from the internal lammps reader,","        # that doesn't have this functionality","        with pytest.raises(ValueError, match='Could not read atomic indices from the trajectory.'):","            traj = Trajectory('tests/trajectory_reader/trajectory_files/positions.lammpstrj',","                              trajectory_format='lammps_internal',","                              atomic_indices='read_from_trajectory')","    ","        # Check that atomic indices are passed to the trajectory frame from the MDAnalysis reader","        traj = Trajectory('tests/trajectory_reader/trajectory_files/positions.lammpstrj',","                          trajectory_format='lammps_mdanalysis', length_unit='Angstrom',","                          time_unit='ps', atomic_indices='read_from_trajectory')","        assert isinstance(traj.atomic_indices, dict)","        assert np.all(traj.atomic_indices['1'] == [0,  3,  6,  9, 12, 15, 18, 21])","        assert np.all(traj.atomic_indices['2'] == [1,  2,  4,  5,  7,  8, 10, 11,","                                                   13, 14, 16, 17, 19, 20, 22, 23])","    ","        # Check that atomic indices are passed to the trajectory frame from the Extxyz reader",">       traj = Trajectory('tests/trajectory_reader/trajectory_files/dump.xyz',","                          trajectory_format='extxyz', length_unit='Angstrom',","                          time_unit='ps', atomic_indices='read_from_trajectory')","","tests/test_trajectory_frame.py:90: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278b407d0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:mdanalysis_trajectory_reader.py:72 Length unit nm and time unit ps inferred from trajectory.","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","INFO     dynasor:trajectory.py:160 Trajectory file: tests/trajectory_reader/trajectory_files/positions.lammpstrj","INFO     dynasor:trajectory.py:161 Total number of particles: 24","INFO     dynasor:trajectory.py:162 Number of atom types: 2","INFO     dynasor:trajectory.py:164 Number of atoms of type 1: 8","INFO     dynasor:trajectory.py:164 Number of atoms of type 2: 16","INFO     dynasor:trajectory.py:165 Simulation cell (in Angstrom):","[[6.25 0.   0.  ]"," [0.   6.25 0.  ]"," [0.   0.   6.25]]","_______________________________ test_read_frames _______________________________","","traj_filename = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz'","","    def test_read_frames(traj_filename):","        # dump with position","        reader = ExtxyzTrajectoryReader(traj_filename)","        frames = list(reader)",">       assert len(frames) == 4","E       assert 0 == 4","E        +  where 0 = len([])","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:53: AssertionError","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________ test_read_frames_with_velocities _______________________","","traj_filename_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","","    def test_read_frames_with_velocities(traj_filename_with_velocities):","        # dump with position and velocities","        reader = ExtxyzTrajectoryReader(traj_filename_with_velocities)","        frames = list(reader)",">       assert len(frames) == 4","E       assert 0 == 4","E        +  where 0 = len([])","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:63: AssertionError","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________________ test_first_frame_contents ___________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278b41650>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_filename = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump.xyz'","first_frame = (array([[ 3.54986467e+01,  3.54663959e+01,  1.79185690e-01],","       [ 3.01637108e+00,  3.02819058e+00,  2.89811028e+00...269955, -0.00236018],","       [ 0.00059981, -0.00173836, -0.00372708],","       [ 0.00247676,  0.00041072, -0.00134462]]))","","    def test_first_frame_contents(traj_filename, first_frame):","        reader = ExtxyzTrajectoryReader(traj_filename)",">       frame = next(reader)","                ^^^^^^^^^^^^","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:73: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278b41650>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_first_frame_contents_with_velocities ___________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278dd13d0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_filename_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","first_frame = (array([[ 3.54986467e+01,  3.54663959e+01,  1.79185690e-01],","       [ 3.01637108e+00,  3.02819058e+00,  2.89811028e+00...269955, -0.00236018],","       [ 0.00059981, -0.00173836, -0.00372708],","       [ 0.00247676,  0.00041072, -0.00134462]]))","","    def test_first_frame_contents_with_velocities(traj_filename_with_velocities, first_frame):","        reader = ExtxyzTrajectoryReader(traj_filename_with_velocities)",">       frame = next(reader)","                ^^^^^^^^^^^^","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:91: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f7278dd13d0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_____________________ test_first_frame_contents_with_units _____________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a8436d0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_filename_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","first_frame = (array([[ 3.54986467e+01,  3.54663959e+01,  1.79185690e-01],","       [ 3.01637108e+00,  3.02819058e+00,  2.89811028e+00...269955, -0.00236018],","       [ 0.00059981, -0.00173836, -0.00372708],","       [ 0.00247676,  0.00041072, -0.00134462]]))","","    def test_first_frame_contents_with_units(traj_filename_with_velocities, first_frame):","        reader = ExtxyzTrajectoryReader(traj_filename_with_velocities, length_unit='nm', time_unit='ps')",">       frame = next(reader)","                ^^^^^^^^^^^^","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:110: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7f727a8436d0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","=========================== short test summary info ============================","FAILED tests/test_SED.py::test_sed - StopIteration","FAILED tests/test_SED.py::test_sed_without_velocities - StopIteration","FAILED tests/test_SED.py::test_sed_with_incorrect_supercell - StopIteration","FAILED tests/test_cli.py::test_dynasor_CLI - EOFError: No data left in file","FAILED tests/test_dynasor_API.py::test_API_dynamic_structure_factor - StopIte...","FAILED tests/test_dynasor_API.py::test_API_dynamic_structure_factor_selfpart","FAILED tests/test_dynasor_API.py::test_API_static_structure_factor - StopIter...","FAILED tests/test_dynasor_API.py::test_API_dynamic_step - StopIteration","FAILED tests/test_dynasor_API.py::test_raises_with_bad_input_args - StopItera...","FAILED tests/test_integration.py::test_integration_dynamic_structure_factor","FAILED tests/test_logging.py::test_set_logging_level - StopIteration","FAILED tests/test_normalization.py::test_normalization_dynamic_structure_factor","FAILED tests/test_normalization.py::test_normalization_static_structure_factor","FAILED tests/test_regression_vs_old_cmdline_results.py::test_regression_test_with_old_cmdline","FAILED tests/test_trajectory_and_window_iterator.py::test_traj_step - StopIte...","FAILED tests/test_trajectory_and_window_iterator.py::test_index_file - StopIt...","FAILED tests/test_trajectory_and_window_iterator.py::test_filename_property","FAILED tests/test_trajectory_and_window_iterator.py::test_trajectory_repr_html_str","FAILED tests/test_trajectory_and_window_iterator.py::test_trajectory_frame_repr_html_str","FAILED tests/test_trajectory_and_window_iterator.py::test_trajectory_with_changing_cell","FAILED tests/test_trajectory_and_window_iterator.py::test_windowiterator_stride","FAILED tests/test_trajectory_and_window_iterator.py::test_large_window_step","FAILED tests/test_trajectory_and_window_iterator.py::test_invalid_inputs_to_trajectory","FAILED tests/test_trajectory_frame.py::test_str - StopIteration","FAILED tests/test_trajectory_frame.py::test_read_indices_from_trajectory - St...","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_read_frames","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_read_frames_with_velocities","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_first_frame_contents","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_first_frame_contents_with_velocities","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_first_frame_contents_with_units","================ 30 failed, 143 passed, 1 deselected in 27.65s =================","E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.13/build; python3.13 -m pytest -k 'not test_integration_static_structure_factor'","I: pybuild base:385: cd /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build; python3.14 -m pytest -k 'not test_integration_static_structure_factor'","============================= test session starts ==============================","platform linux -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0","rootdir: /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build","configfile: pyproject.toml","plugins: typeguard-4.4.4","collected 174 items / 1 deselected / 173 selected","","tests/filon/test_filon.py ...                                            [  1%]","tests/modes/test_modes.py .                                              [  2%]","tests/modes/test_regression.py .                                         [  2%]","tests/test_SED.py FFF                                                    [  4%]","tests/test_average_independent_samples.py ..                             [  5%]","tests/test_cli.py F                                                      [  6%]","tests/test_dho.py ....                                                   [  8%]","tests/test_dynasor_API.py FFF.FF                                         [ 12%]","tests/test_integration.py F                                              [ 12%]","tests/test_lattice.py ..                                                 [ 13%]","tests/test_logging.py F                                                  [ 14%]","tests/test_normalization.py FF                                           [ 15%]","tests/test_numba.py .                                                    [ 16%]","tests/test_parse_gromacs_index_file.py ...                               [ 17%]","tests/test_qpoints.py .......                                            [ 21%]","tests/test_regression_vs_old_cmdline_results.py F                        [ 22%]","tests/test_sample_class.py ...........                                   [ 28%]","tests/test_spherical_average.py ......                                   [ 32%]","tests/test_time_averager.py .                                            [ 32%]","tests/test_tools.py ......                                               [ 36%]","tests/test_trajectory_and_window_iterator.py FFF...FFFFFF                [ 43%]","tests/test_trajectory_frame.py .FF                                       [ 45%]","tests/test_units.py .                                                    [ 45%]","tests/test_weighting.py ................................................ [ 73%]",".................                                                        [ 83%]","tests/test_weights.py ...                                                [ 84%]","tests/trajectory_reader/test_ase_trajectory_reader.py .......            [ 89%]","tests/trajectory_reader/test_extxyz_trajectory_reader.py ..FFFFF         [ 93%]","tests/trajectory_reader/test_lammps_trajectory_reader.py ......          [ 96%]","tests/trajectory_reader/test_mdanalysis_trajectory_reader.py ......      [100%]","","=================================== FAILURES ===================================","___________________________________ test_sed ___________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad9ffb60>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","prim = Atoms(symbols='CsPbBr3', pbc=True, cell=[6.0, 6.0, 6.0])","","    def test_sed(traj_fname_xyz_with_velocities, prim):","    ","        # setup","        size = 6","        dt = 2.5",">       traj = Trajectory(traj_fname_xyz_with_velocities, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_SED.py:42: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad9ffb60>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:29: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:29: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_________________________ test_sed_without_velocities __________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad458b90>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz'","prim = Atoms(symbols='CsPbBr3', pbc=True, cell=[6.0, 6.0, 6.0])","","    def test_sed_without_velocities(traj_fname_xyz, prim):","        size = 6","        dt = 2.5","        atoms_ideal = prim.repeat(size)","        q_points = np.array([a * np.array([2 * np.pi / 6.0, 0, 0]) for a in np.linspace(0, 1, size+1)])",">       traj = Trajectory(traj_fname_xyz, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_SED.py:82: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad458b90>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:29: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:29: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_sed_with_incorrect_supercell _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad458050>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz'","prim = Atoms(symbols='CsPbBr3', pbc=True, cell=[6.0, 6.0, 6.0])","","    def test_sed_with_incorrect_supercell(traj_fname_xyz, prim):","        size = 6","        dt = 2.5","        atoms_ideal = prim.repeat(size)","        del atoms_ideal[0]","        q_points = np.array([a * np.array([2 * np.pi / 6.0, 0, 0]) for a in np.linspace(0, 1, size+1)])",">       traj = Trajectory(traj_fname_xyz, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_SED.py:94: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad458050>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:29: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:29: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________________ test_dynasor_CLI _______________________________","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_dynasor_CLI(filenames):","        # input parameters","        time_window = 8","        max_frames = 100000","        dt = 100","    ","        q_max = 40","        q_bins = 20","        max_q_points = 10000","    ","        traj_fname, index_fname = filenames","    ","        tmpfile = NamedTemporaryFile(suffix='.npz', delete=False)","    ","        # setup dynasor command","        flags = []","        flags.append(f'-f {traj_fname} -n {index_fname}')","        flags.append('--trajectory-format=extxyz')","    ","        flags.append(f'--q-bins={q_bins}')","        flags.append(f'--q-max={q_max}')","        flags.append(f'--max-q-points={max_q_points}')","    ","        flags.append(f'--time-window={time_window}')","        flags.append(f'--dt={dt}')","        flags.append(f'--max-frames={max_frames}')","    ","        flags.append(f'--outfile={tmpfile.name}')","        flags.append('--calculate-incoherent')","        flags.append('--calculate-currents')","    ","        flags_str = ' '.join(flags)","    ","        # Run dynasor and read results","        command = 'dynasor ' + flags_str","        os.system(command)","    ",">       sample_cli = read_sample_from_npz(tmpfile.name)","                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_cli.py:58: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/sample.py:399: in read_sample_from_npz","    data_read = np.load(fname, allow_pickle=True)","                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","file = '/tmp/tmppcnbayno.npz', mmap_mode = None, allow_pickle = True","fix_imports = True, encoding = 'ASCII', max_header_size = 10000","","    @set_module('numpy')","    def load(file, mmap_mode=None, allow_pickle=False, fix_imports=True,","             encoding='ASCII', *, max_header_size=_MAX_HEADER_SIZE):","        \"\"\"","        Load arrays or pickled objects from ``.npy``, ``.npz`` or pickled files.","    ","        .. warning:: Loading files that contain object arrays uses the ``pickle``","                     module, which is not secure against erroneous or maliciously","                     constructed data. Consider passing ``allow_pickle=False`` to","                     load data that is known not to contain object arrays for the","                     safer handling of untrusted sources.","    ","        Parameters","        ----------","        file : file-like object, string, or pathlib.Path","            The file to read. File-like objects must support the","            ``seek()`` and ``read()`` methods and must always","            be opened in binary mode.  Pickled files require that the","            file-like object support the ``readline()`` method as well.","        mmap_mode : {None, 'r+', 'r', 'w+', 'c'}, optional","            If not None, then memory-map the file, using the given mode (see","            `numpy.memmap` for a detailed description of the modes).  A","            memory-mapped array is kept on disk. However, it can be accessed","            and sliced like any ndarray.  Memory mapping is especially useful","            for accessing small fragments of large files without reading the","            entire file into memory.","        allow_pickle : bool, optional","            Allow loading pickled object arrays stored in npy files. Reasons for","            disallowing pickles include security, as loading pickled data can","            execute arbitrary code. If pickles are disallowed, loading object","            arrays will fail. Default: False","        fix_imports : bool, optional","            Only useful when loading Python 2 generated pickled files,","            which includes npy/npz files containing object arrays. If `fix_imports`","            is True, pickle will try to map the old Python 2 names to the new names","            used in Python 3.","        encoding : str, optional","            What encoding to use when reading Python 2 strings. Only useful when","            loading Python 2 generated pickled files, which includes","            npy/npz files containing object arrays. Values other than 'latin1',","            'ASCII', and 'bytes' are not allowed, as they can corrupt numerical","            data. Default: 'ASCII'","        max_header_size : int, optional","            Maximum allowed size of the header.  Large headers may not be safe","            to load securely and thus require explicitly passing a larger value.","            See :py:func:`ast.literal_eval()` for details.","            This option is ignored when `allow_pickle` is passed.  In that case","            the file is by definition trusted and the limit is unnecessary.","    ","        Returns","        -------","        result : array, tuple, dict, etc.","            Data stored in the file. For ``.npz`` files, the returned instance","            of NpzFile class must be closed to avoid leaking file descriptors.","    ","        Raises","        ------","        OSError","            If the input file does not exist or cannot be read.","        UnpicklingError","            If ``allow_pickle=True``, but the file cannot be loaded as a pickle.","        ValueError","            The file contains an object array, but ``allow_pickle=False`` given.","        EOFError","            When calling ``np.load`` multiple times on the same file handle,","            if all data has already been read","    ","        See Also","        --------","        save, savez, savez_compressed, loadtxt","        memmap : Create a memory-map to an array stored in a file on disk.","        lib.format.open_memmap : Create or load a memory-mapped ``.npy`` file.","    ","        Notes","        -----","        - If the file contains pickle data, then whatever object is stored","          in the pickle is returned.","        - If the file is a ``.npy`` file, then a single array is returned.","        - If the file is a ``.npz`` file, then a dictionary-like object is","          returned, containing ``{filename: array}`` key-value pairs, one for","          each file in the archive.","        - If the file is a ``.npz`` file, the returned value supports the","          context manager protocol in a similar fashion to the open function::","    ","            with load('foo.npz') as data:","                a = data['a']","    ","          The underlying file descriptor is closed when exiting the 'with'","          block.","    ","        Examples","        --------","        >>> import numpy as np","    ","        Store data to disk, and load it again:","    ","        >>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))","        >>> np.load('/tmp/123.npy')","        array([[1, 2, 3],","               [4, 5, 6]])","    ","        Store compressed data to disk, and load it again:","    ","        >>> a=np.array([[1, 2, 3], [4, 5, 6]])","        >>> b=np.array([1, 2])","        >>> np.savez('/tmp/123.npz', a=a, b=b)","        >>> data = np.load('/tmp/123.npz')","        >>> data['a']","        array([[1, 2, 3],","               [4, 5, 6]])","        >>> data['b']","        array([1, 2])","        >>> data.close()","    ","        Mem-map the stored array, and then access the second row","        directly from disk:","    ","        >>> X = np.load('/tmp/123.npy', mmap_mode='r')","        >>> X[1, :]","        memmap([4, 5, 6])","    ","        \"\"\"","        if encoding not in ('ASCII', 'latin1', 'bytes'):","            # The 'encoding' value for pickle also affects what encoding","            # the serialized binary data of NumPy arrays is loaded","            # in. Pickle does not pass on the encoding information to","            # NumPy. The unpickling code in numpy._core.multiarray is","            # written to assume that unicode data appearing where binary","            # should be is in 'latin1'. 'bytes' is also safe, as is 'ASCII'.","            #","            # Other encoding values can corrupt binary data, and we","            # purposefully disallow them. For the same reason, the errors=","            # argument is not exposed, as values other than 'strict'","            # result can similarly silently corrupt numerical data.","            raise ValueError(\"encoding must be 'ASCII', 'latin1', or 'bytes'\")","    ","        pickle_kwargs = {'encoding': encoding, 'fix_imports': fix_imports}","    ","        with contextlib.ExitStack() as stack:","            if hasattr(file, 'read'):","                fid = file","                own_fid = False","            else:","                fid = stack.enter_context(open(os.fspath(file), \"rb\"))","                own_fid = True","    ","            # Code to distinguish from NumPy binary files and pickles.","            _ZIP_PREFIX = b'PK\\x03\\x04'","            _ZIP_SUFFIX = b'PK\\x05\\x06'  # empty zip files start with this","            N = len(format.MAGIC_PREFIX)","            magic = fid.read(N)","            if not magic:",">               raise EOFError(\"No data left in file\")","E               EOFError: No data left in file","","/usr/lib/python3/dist-packages/numpy/lib/_npyio_impl.py:463: EOFError","----------------------------- Captured stderr call -----------------------------","Traceback (most recent call last):","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 96, in _get_next","    atoms = next(self._generator_xyz)","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 35, in iread","    chunk = next(chunk_iterator)","  File \"/usr/lib/python3/dist-packages/ase/io/extxyz.py\", line 559, in ixyzchunks","    natoms = int(line.strip()[0])","ValueError: invalid literal for int() with base 10: 'B'","","During handling of the above exception, another exception occurred:","","Traceback (most recent call last):","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/scripts/dynasor\", line 8, in <module>","    sys.exit(main())","             ~~~~^^","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/dynasor/cli/main.py\", line 176, in main","    traj = Trajectory(args.trajectory,","                      trajectory_format=args.trajectory_format,","    ...<4 lines>...","                      frame_step=args.step,","                      )","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/dynasor/trajectory/trajectory.py\", line 111, in __init__","    frame0 = next(self._reader_obj)","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 123, in __next__","    self._get_next()","    ~~~~~~~~~~~~~~^^","  File \"/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/dynasor/trajectory/extxyz_trajectory_reader.py\", line 100, in _get_next","    raise StopIteration","StopIteration","______________________ test_API_dynamic_structure_factor _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab8336f0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_dynamic_structure_factor(traj_fname_xyz, q_points):",">       traj = Trajectory(traj_fname_xyz, 'extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:38: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab8336f0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:32: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:32: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_API_dynamic_structure_factor_selfpart __________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab831810>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_dynamic_structure_factor_selfpart(traj_fname_xyz, q_points):",">       traj = Trajectory(traj_fname_xyz, 'extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:44: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab831810>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:32: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:32: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________ test_API_static_structure_factor _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad7960f0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_long = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_static_structure_factor(traj_fname_xyz_long, q_points):","        # setup","        n_atoms = 320","        n_A = 50","        atomic_indices = dict()","        atomic_indices['A'] = np.arange(0, n_A, 1)","        atomic_indices['B'] = np.arange(n_A, n_atoms, 1)","    ","        # calculate static",">       traj = Trajectory(","            traj_fname_xyz_long, trajectory_format='extxyz', atomic_indices=atomic_indices)","","tests/test_dynasor_API.py:59: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad7960f0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:32: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:32: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_API_dynamic_step _____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aba3ead0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_long = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_API_dynamic_step(traj_fname_xyz_long, q_points):","        \"\"\"","        Ensure that setting step > 1 affects the resulting time","        \"\"\"","        dt = 1.0","        time_window = 4","        step = 1","    ","        for step in [1, 2, 3]:","    ",">           traj = Trajectory(traj_fname_xyz_long, 'extxyz', frame_step=step)","                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:111: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aba3ead0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:35: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:35: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________ test_raises_with_bad_input_args ________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aba3e8b0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz_long = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","q_points = array([[ 0.        ,  0.        ,  0.        ],","       [ 0.5       ,  0.66666667,  1.235     ],","       [ 1.        ,  ...3333333,  9.88      ],","       [ 4.5       ,  6.        , 11.115     ],","       [ 5.        ,  6.66666667, 12.35      ]])","","    def test_raises_with_bad_input_args(traj_fname_xyz_long, q_points):","        time_window = 4","        dt = 1.0","    ","        # q-points wrong shape",">       traj = Trajectory(traj_fname_xyz_long, 'extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_dynasor_API.py:127: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aba3e8b0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:35: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:35: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_integration_dynamic_structure_factor ___________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad596e50>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz'","","    def test_integration_dynamic_structure_factor(traj_fname):","        \"\"\" Test the full dynasor workflow for dynamic structure factor \"\"\"","    ","        # parameters","        q_max = 2.5","        max_points = 35","        q_bins = 6","        window_size = 4","        dt = 2.1","    ","        # run dynasor",">       traj = Trajectory(traj_fname, trajectory_format='extxyz', atomic_indices='read_from_trajectory')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_integration.py:92: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad596e50>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","----------------------------- Captured stdout call -----------------------------","INFO 2026-07-14 08:42:35: Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO 2026-07-14 08:42:35: Assuming the trajectory has the default time unit (fs), since no unit was specified.","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_set_logging_level ____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aecf2b50>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_fname_xyz = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","","    def test_set_logging_level(traj_fname_xyz):","    ","        # Log Trajectory output to StringIO stream","        for handler in logger.handlers:","            logger.removeHandler(handler)","        stream = StringIO()","        stream_handler = logging.StreamHandler(stream)","        logger.addHandler(stream_handler)",">       Trajectory(traj_fname_xyz, 'extxyz')","","tests/test_logging.py:25: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aecf2b50>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","_________________ test_normalization_dynamic_structure_factor __________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad786990>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_normalization_dynamic_structure_factor():","    ","        # traj index files","        this_dir = os.path.dirname(__file__)","        traj_fname = os.path.join(","            this_dir, 'trajectory_reader/trajectory_files/dump_long_with_velocities.xyz')","        index_fname = os.path.join(this_dir, 'trajectory_reader/trajectory_files/index_file_dump_long')","    ","        # input parameters","        time_window = 4","        dt = 100","        q_max = 40","        max_points = 500","    ","        # setup","        traj_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=traj_format)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_normalization.py:25: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad786990>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_normalization_static_structure_factor __________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab8b57c0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_normalization_static_structure_factor():","    ","        # traj index files","        this_dir = os.path.dirname(__file__)","        traj_fname = os.path.join(","            this_dir, 'trajectory_reader/trajectory_files/dump_long_with_velocities.xyz')","        index_fname = os.path.join(this_dir, 'trajectory_reader/trajectory_files/index_file_dump_long')","    ","        # input parameters","        q_max = 40","        max_points = 500","    ","        # setup","        traj_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=traj_format)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_normalization.py:94: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab8b57c0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________ test_regression_test_with_old_cmdline _____________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8acf26dd0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_regression_test_with_old_cmdline():","        # traj index files","        this_dir = os.path.dirname(__file__)","        traj_fname = os.path.join(","            this_dir, 'trajectory_reader/trajectory_files/dump_long_with_velocities.xyz')","        index_fname = os.path.join(this_dir, 'trajectory_reader/trajectory_files/index_file_dump_long')","    ","        # number of atoms, needed for normalization since normalization is now different","        n_atoms = 320","        atoms_counts = dict(Cs=64, Pb=64, Br=192)","    ","        # input parameters","        time_window = 6","        dt = 100","        q_max = 4  # Previously in 2*pi*nm^{-1}, now in 2*pi*Å^{-1}","        q_bins = 20","    ","        # run dynasor",">       traj = Trajectory(traj_fname, trajectory_format='extxyz', atomic_indices=index_fname)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_regression_vs_old_cmdline_results.py:29: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8acf26dd0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","________________________________ test_traj_step ________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aba55550>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_traj_step(filenames):","        traj_fname, index_fname = filenames","    ","        # full traj","        step = 1","        trajectory_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format, frame_step=step)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:44: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aba55550>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________________ test_index_file ________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab059570>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_index_file(filenames):","        traj_fname, index_fname = filenames","    ","        n_atoms = 320","        trajectory_format = 'extxyz'","    ","        # atomic_indices is None",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format)","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:65: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab059570>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_filename_property ____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad082690>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_filename_property(filenames):","        traj_fname, index_fname = filenames",">       traj = Trajectory(traj_fname, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:95: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad082690>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","________________________ test_trajectory_repr_html_str _________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad5b2450>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_trajectory_repr_html_str(filenames):","        traj_fname, index_fname = filenames",">       traj = Trajectory(traj_fname, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:124: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ad5b2450>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_____________________ test_trajectory_frame_repr_html_str ______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab794cb0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_trajectory_frame_repr_html_str(filenames):","        traj_fname, index_fname = filenames",">       traj = Trajectory(traj_fname, trajectory_format='extxyz')","               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^","","tests/test_trajectory_and_window_iterator.py:148: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab794cb0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_trajectory_with_changing_cell ______________________","concurrent.futures.process._RemoteTraceback: ","\"\"\"","Traceback (most recent call last):","  File \"/usr/lib/python3.14/multiprocessing/queues.py\", line 262, in _feed","    obj = _ForkingPickler.dumps(obj)","  File \"/usr/lib/python3.14/multiprocessing/reduction.py\", line 51, in dumps","    cls(buf, protocol).dump(obj)","    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^","TypeError: cannot pickle 'TextIOWrapper' instances","when serializing dict item 'fd'","when serializing ase.io.extxyz.XYZChunk state","when serializing ase.io.extxyz.XYZChunk object","when serializing tuple item 0","when serializing dict item 'args'","when serializing concurrent.futures.process._CallItem state","when serializing concurrent.futures.process._CallItem object","\"\"\"","","The above exception was the direct cause of the following exception:","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab7952e0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:56: in iread","    atoms = res.result()","            ^^^^^^^^^^^^","/usr/lib/python3.14/concurrent/futures/_base.py:447: in result","    return self.__get_result()","           ^^^^^^^^^^^^^^^^^^^","/usr/lib/python3.14/concurrent/futures/_base.py:396: in __get_result","    raise self._exception","/usr/lib/python3.14/multiprocessing/queues.py:262: in _feed","    obj = _ForkingPickler.dumps(obj)","          ^^^^^^^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","cls = <class 'multiprocessing.reduction.ForkingPickler'>","obj = <concurrent.futures.process._CallItem object at 0x7fa8ab7947e0>","protocol = None","","    @classmethod","    def dumps(cls, obj, protocol=None):","        buf = io.BytesIO()",">       cls(buf, protocol).dump(obj)","E       TypeError: cannot pickle 'TextIOWrapper' instances","E       when serializing dict item 'fd'","E       when serializing ase.io.extxyz.XYZChunk state","E       when serializing ase.io.extxyz.XYZChunk object","E       when serializing tuple item 0","E       when serializing dict item 'args'","E       when serializing concurrent.futures.process._CallItem state","E       when serializing concurrent.futures.process._CallItem object","","/usr/lib/python3.14/multiprocessing/reduction.py:51: TypeError","","During handling of the above exception, another exception occurred:","","    def test_trajectory_with_changing_cell():","    ","        # write dummy file","        s = b\"\"\"2","    Lattice=\"4.05 0.0 0.0 0.0 4.05 0.0 0.0 0.0 4.05\" Properties=species:S:1:pos:R:3 pbc=\"T T T\"","    Al       0.00000000       0.00000000       0.00000000","    Al       0.00000000       2.02500000       2.02500000","    2","    Lattice=\"4.051 0.0 0.0 0.0 4.05 0.0 0.0 0.0 4.05\" Properties=species:S:1:pos:R:3 pbc=\"T T T\"","    Al       0.00000000       0.00000000       0.00000000","    Al       0.00000000       2.02500000       2.02500000","    2","    Lattice=\"4.05 0.0 0.0 0.0 4.05 0.0 0.0 0.0 4.05\" Properties=species:S:1:pos:R:3 pbc=\"T T T\"","    Al       0.00000000       0.00000000       0.00000000","    Al       0.00000000       2.02500000       2.02500000\"\"\"","        f = tempfile.NamedTemporaryFile(delete=False)","        f.write(s)","        f.seek(0)","    ","        with pytest.raises(ValueError):",">           Trajectory(f.name, trajectory_format='extxyz')","","tests/test_trajectory_and_window_iterator.py:184: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab7952e0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________________ test_windowiterator_stride __________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab7da780>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_windowiterator_stride(filenames):","        traj_fname, index_fname = filenames","    ","        window_size = 4","        max_frames = 12","        trajectory_format = 'extxyz'","    ","        # full traj","        step = 1","        stride = 1",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format,","                          frame_step=step, frame_stop=max_frames)","","tests/test_trajectory_and_window_iterator.py:197: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab7da780>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","____________________________ test_large_window_step ____________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab7d99c0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_large_window_step(filenames):","        # test when window step is larger than window size","    ","        traj_fname, index_fname = filenames","        max_frames = 20","        frame_step = 1","        window_size = 5","        window_step = 7","        trajectory_format = 'extxyz'",">       traj = Trajectory(traj_fname, trajectory_format=trajectory_format,","                          frame_step=frame_step, frame_stop=max_frames)","","tests/test_trajectory_and_window_iterator.py:264: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab7d99c0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_invalid_inputs_to_trajectory _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab794aa0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_long_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'B'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","filenames = ('/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/du...le-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/index_file_dump_long')","","    def test_invalid_inputs_to_trajectory(filenames):","        traj_fname, index_fname = filenames","        trajectory_format = 'extxyz'","    ","        frame_step = -1","        with pytest.raises(ValueError, match=r'frame_step should be positive'):","            Trajectory(traj_fname, trajectory_format=trajectory_format, frame_step=frame_step)","    ","        frame_start = -1","        with pytest.raises(ValueError, match=r'frame_start should be positive'):","            Trajectory(traj_fname, trajectory_format=trajectory_format, frame_start=frame_start)","    ","        # max of atomic indices exceeds number of atoms","        atomic_indices = dict()","        atomic_indices['Cs'] = [1, 2, 3, 4, 1100]","        with pytest.raises(ValueError, match=r'index in atomic_indices exceeds number of atoms'):",">           Trajectory(traj_fname, trajectory_format=trajectory_format, atomic_indices=atomic_indices)","","tests/test_trajectory_and_window_iterator.py:292: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab794aa0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","___________________________________ test_str ___________________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab796fc0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_str():","        atomic_indices = dict()","        atomic_indices['Cs'] = np.arange(0, 20)","        atomic_indices['Pb'] = np.arange(50, 100)","    ","        # No velocities",">       traj = Trajectory('tests/trajectory_reader/trajectory_files/dump.xyz',","                          trajectory_format='extxyz', atomic_indices=atomic_indices)","","tests/test_trajectory_frame.py:48: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab796fc0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","______________________ test_read_indices_from_trajectory _______________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aceb1b20>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","    def test_read_indices_from_trajectory():","        # Check that error is raised when trying to read atomic_indices from reader and file type","        # combination that doesn't support this","        with pytest.raises(ValueError, match='Could not read atomic indices from the trajectory.'):","            traj = Trajectory('tests/trajectory_reader/trajectory_files/water_10snapshots.xtc',","                              trajectory_format='xtc', atomic_indices='read_from_trajectory')","    ","        # Check that error is raised when trying to read atomic_indices from the internal lammps reader,","        # that doesn't have this functionality","        with pytest.raises(ValueError, match='Could not read atomic indices from the trajectory.'):","            traj = Trajectory('tests/trajectory_reader/trajectory_files/positions.lammpstrj',","                              trajectory_format='lammps_internal',","                              atomic_indices='read_from_trajectory')","    ","        # Check that atomic indices are passed to the trajectory frame from the MDAnalysis reader","        traj = Trajectory('tests/trajectory_reader/trajectory_files/positions.lammpstrj',","                          trajectory_format='lammps_mdanalysis', length_unit='Angstrom',","                          time_unit='ps', atomic_indices='read_from_trajectory')","        assert isinstance(traj.atomic_indices, dict)","        assert np.all(traj.atomic_indices['1'] == [0,  3,  6,  9, 12, 15, 18, 21])","        assert np.all(traj.atomic_indices['2'] == [1,  2,  4,  5,  7,  8, 10, 11,","                                                   13, 14, 16, 17, 19, 20, 22, 23])","    ","        # Check that atomic indices are passed to the trajectory frame from the Extxyz reader",">       traj = Trajectory('tests/trajectory_reader/trajectory_files/dump.xyz',","                          trajectory_format='extxyz', length_unit='Angstrom',","                          time_unit='ps', atomic_indices='read_from_trajectory')","","tests/test_trajectory_frame.py:90: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/trajectory.py:111: in __init__","    frame0 = next(self._reader_obj)","             ^^^^^^^^^^^^^^^^^^^^^^","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aceb1b20>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:mdanalysis_trajectory_reader.py:72 Length unit nm and time unit ps inferred from trajectory.","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","INFO     dynasor:trajectory.py:160 Trajectory file: tests/trajectory_reader/trajectory_files/positions.lammpstrj","INFO     dynasor:trajectory.py:161 Total number of particles: 24","INFO     dynasor:trajectory.py:162 Number of atom types: 2","INFO     dynasor:trajectory.py:164 Number of atoms of type 1: 8","INFO     dynasor:trajectory.py:164 Number of atoms of type 2: 16","INFO     dynasor:trajectory.py:165 Simulation cell (in Angstrom):","[[6.25 0.   0.  ]"," [0.   6.25 0.  ]"," [0.   0.   6.25]]","_______________________________ test_read_frames _______________________________","","traj_filename = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz'","","    def test_read_frames(traj_filename):","        # dump with position","        reader = ExtxyzTrajectoryReader(traj_filename)","        frames = list(reader)",">       assert len(frames) == 4","E       assert 0 == 4","E        +  where 0 = len([])","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:53: AssertionError","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_______________________ test_read_frames_with_velocities _______________________","","traj_filename_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","","    def test_read_frames_with_velocities(traj_filename_with_velocities):","        # dump with position and velocities","        reader = ExtxyzTrajectoryReader(traj_filename_with_velocities)","        frames = list(reader)",">       assert len(frames) == 4","E       assert 0 == 4","E        +  where 0 = len([])","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:63: AssertionError","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________________ test_first_frame_contents ___________________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab922db0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_filename = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump.xyz'","first_frame = (array([[ 3.54986467e+01,  3.54663959e+01,  1.79185690e-01],","       [ 3.01637108e+00,  3.02819058e+00,  2.89811028e+00...269955, -0.00236018],","       [ 0.00059981, -0.00173836, -0.00372708],","       [ 0.00247676,  0.00041072, -0.00134462]]))","","    def test_first_frame_contents(traj_filename, first_frame):","        reader = ExtxyzTrajectoryReader(traj_filename)",">       frame = next(reader)","                ^^^^^^^^^^^^","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:73: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab922db0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","__________________ test_first_frame_contents_with_velocities ___________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aceb1b20>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_filename_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","first_frame = (array([[ 3.54986467e+01,  3.54663959e+01,  1.79185690e-01],","       [ 3.01637108e+00,  3.02819058e+00,  2.89811028e+00...269955, -0.00236018],","       [ 0.00059981, -0.00173836, -0.00372708],","       [ 0.00247676,  0.00041072, -0.00134462]]))","","    def test_first_frame_contents_with_velocities(traj_filename_with_velocities, first_frame):","        reader = ExtxyzTrajectoryReader(traj_filename_with_velocities)",">       frame = next(reader)","                ^^^^^^^^^^^^","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:91: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8aceb1b20>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","------------------------------ Captured log call -------------------------------","INFO     dynasor:abstract_trajectory_reader.py:44 Assuming the trajectory has the default length unit (Ångström), since no unit was specified.","INFO     dynasor:abstract_trajectory_reader.py:52 Assuming the trajectory has the default time unit (fs), since no unit was specified.","_____________________ test_first_frame_contents_with_units _____________________","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab796fc0>","","    def _get_next(self):","        try:",">           atoms = next(self._generator_xyz)","                    ^^^^^^^^^^^^^^^^^^^^^^^^^","","dynasor/trajectory/extxyz_trajectory_reader.py:96: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:35: in iread","    chunk = next(chunk_iterator)","            ^^^^^^^^^^^^^^^^^^^^","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","fd = <_io.TextIOWrapper name='/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz' mode='r' encoding='UTF-8'>","","    def ixyzchunks(fd: TextIO) -> Iterator[XYZChunk]:","        \"\"\"Yield unprocessed chunks (header, lines) for each xyz image.\"\"\"","        pos = fd.tell()","        while line := fd.readline():",">           natoms = int(line.strip()[0])","                     ^^^^^^^^^^^^^^^^^^^^","E           ValueError: invalid literal for int() with base 10: 'P'","","/usr/lib/python3/dist-packages/ase/io/extxyz.py:559: ValueError","","During handling of the above exception, another exception occurred:","","traj_filename_with_velocities = '/build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build/tests/trajectory_reader/trajectory_files/dump_with_velocities.xyz'","first_frame = (array([[ 3.54986467e+01,  3.54663959e+01,  1.79185690e-01],","       [ 3.01637108e+00,  3.02819058e+00,  2.89811028e+00...269955, -0.00236018],","       [ 0.00059981, -0.00173836, -0.00372708],","       [ 0.00247676,  0.00041072, -0.00134462]]))","","    def test_first_frame_contents_with_units(traj_filename_with_velocities, first_frame):","        reader = ExtxyzTrajectoryReader(traj_filename_with_velocities, length_unit='nm', time_unit='ps')",">       frame = next(reader)","                ^^^^^^^^^^^^","","tests/trajectory_reader/test_extxyz_trajectory_reader.py:110: ","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","dynasor/trajectory/extxyz_trajectory_reader.py:123: in __next__","    self._get_next()","_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ","","self = <dynasor.trajectory.extxyz_trajectory_reader.ExtxyzTrajectoryReader object at 0x7fa8ab796fc0>","","    def _get_next(self):","        try:","            atoms = next(self._generator_xyz)","        except Exception:","            self._fobj.close()","            self._open = False",">           raise StopIteration","E           StopIteration","","dynasor/trajectory/extxyz_trajectory_reader.py:100: StopIteration","=========================== short test summary info ============================","FAILED tests/test_SED.py::test_sed - StopIteration","FAILED tests/test_SED.py::test_sed_without_velocities - StopIteration","FAILED tests/test_SED.py::test_sed_with_incorrect_supercell - StopIteration","FAILED tests/test_cli.py::test_dynasor_CLI - EOFError: No data left in file","FAILED tests/test_dynasor_API.py::test_API_dynamic_structure_factor - StopIte...","FAILED tests/test_dynasor_API.py::test_API_dynamic_structure_factor_selfpart","FAILED tests/test_dynasor_API.py::test_API_static_structure_factor - StopIter...","FAILED tests/test_dynasor_API.py::test_API_dynamic_step - StopIteration","FAILED tests/test_dynasor_API.py::test_raises_with_bad_input_args - StopItera...","FAILED tests/test_integration.py::test_integration_dynamic_structure_factor","FAILED tests/test_logging.py::test_set_logging_level - StopIteration","FAILED tests/test_normalization.py::test_normalization_dynamic_structure_factor","FAILED tests/test_normalization.py::test_normalization_static_structure_factor","FAILED tests/test_regression_vs_old_cmdline_results.py::test_regression_test_with_old_cmdline","FAILED tests/test_trajectory_and_window_iterator.py::test_traj_step - StopIte...","FAILED tests/test_trajectory_and_window_iterator.py::test_index_file - StopIt...","FAILED tests/test_trajectory_and_window_iterator.py::test_filename_property","FAILED tests/test_trajectory_and_window_iterator.py::test_trajectory_repr_html_str","FAILED tests/test_trajectory_and_window_iterator.py::test_trajectory_frame_repr_html_str","FAILED tests/test_trajectory_and_window_iterator.py::test_trajectory_with_changing_cell","FAILED tests/test_trajectory_and_window_iterator.py::test_windowiterator_stride","FAILED tests/test_trajectory_and_window_iterator.py::test_large_window_step","FAILED tests/test_trajectory_and_window_iterator.py::test_invalid_inputs_to_trajectory","FAILED tests/test_trajectory_frame.py::test_str - StopIteration","FAILED tests/test_trajectory_frame.py::test_read_indices_from_trajectory - St...","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_read_frames","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_read_frames_with_velocities","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_first_frame_contents","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_first_frame_contents_with_velocities","FAILED tests/trajectory_reader/test_extxyz_trajectory_reader.py::test_first_frame_contents_with_units","================ 30 failed, 143 passed, 1 deselected in 27.77s =================","E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/python-dynasor-2.3/.pybuild/cpython3_3.14/build; python3.14 -m pytest -k 'not test_integration_static_structure_factor'","dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p \"3.13 3.14\" --parallel=4 returned exit code 13","make: *** [debian/rules:21: binary] Error 25","dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2","--------------------------------------------------------------------------------","Build finished at 2026-07-14T08:42:46Z","","Finished","--------"],"log_name":"build.log","match_lines":["tests/trajectory_reader/test_extxyz_trajectory_reader.py:53: AssertionError\n"],"start_line":1544,"title":"Build"},"is_admin":false,"lintian_result":null,"logs":{"build":{"description":"build","name":"build.log","url":"/unchanged/c/python-dynasor/d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1/logs/build.log"},"codemod":{"description":"codemod","name":"codemod.log","url":"/unchanged/c/python-dynasor/d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1/logs/codemod.log"},"worker":{"content":"[2026-07-14T08:33:35Z INFO  janitor_worker] Opening branch at https://salsa.debian.org/python-team/packages/python-dynasor.git\n[2026-07-14T08:33:37Z INFO  janitor_worker] Cached branch URL http://janitor.debian.net/git/python-dynasor missing: http://tyr@janitor.debian.net/git/python-dynasor/\n[2026-07-14T08:33:37Z DEBUG janitor_worker] Workspace path: /srv/worker/output/1/janitor-worker-IJfarV/python-dynasor\n[2026-07-14T08:33:37Z DEBUG silver_platter::workspace] Creating sprout from git+ssh://git@salsa.debian.org/python-team/packages/python-dynasor.git\nTotal 468 (delta 23), reused 0 (delta 0), pack-reused 422 (from 1)\nNothing to delete.\n[2026-07-14T08:33:43Z DEBUG silver_platter::workspace] Fetching colocated branches: {}\n[2026-07-14T08:33:43Z INFO  janitor_worker] Workspace ready - starting.\n[2026-07-14T08:33:43Z INFO  janitor_worker::debian] Running [\"true\"]\n[2026-07-14T08:33:45Z DEBUG debian_analyzer::detect_gbp_dch] Branch history analysis: changelog_only: 6, other_only: 8, mixed: 3, dch_references: 0, unreleased_references: 5\n[2026-07-14T08:33:45Z INFO  silver_platter::debian::codemod] Assuming changelog does not need to be updated, since changelog entries are usually updated in separate commits.\nCommitting to: /srv/worker/output/1/janitor-worker-IJfarV/python-dynasor/\n[2026-07-14T08:33:47Z INFO  ognibuild::debian::fix_build] Using fixers: [PgBuildExtOutOfDateControlFixer, MissingConfigureFixer, MissingAutomakeInputFixer, MissingConfigStatusInputFixer, MissingPerlFileFixer, DebcargoUnacceptablePredicateFixer, DebcargoUnacceptableComparatorFixer, RetryAptFetchFailure, PackageDependencyFixer]\n[2026-07-14T08:33:47Z DEBUG ognibuild::debian::build] Adding dummy changelog entry 2.3-2~jan+unchanged1 for build\n[2026-07-14T08:33:47Z DEBUG ognibuild::debian::build] Writing build log to /srv/worker/output/1/janitor-worker-IJfarV/build.log\n[2026-07-14T08:33:47Z INFO  ognibuild::debian::build] Building debian packages, running sbuild --chroot-mode=unshare --no-clean-source -A -s -v -d sid.\n[2026-07-14T08:42:48Z WARN  buildlog_consultant::sbuild] Unknown line in summary: --------------------------------------------------------------------------------\n    \n[2026-07-14T08:42:48Z WARN  buildlog_consultant::sbuild] Unknown line in summary: Finished at 2026-07-14T08:42:46Z\n    \n[2026-07-14T08:42:48Z WARN  buildlog_consultant::sbuild] Unknown line in summary: Build needed 00:08:58, 33404k disk space\n    \n[2026-07-14T08:42:48Z WARN  buildlog_consultant::sbuild] Unknown key in summary: E\n[2026-07-14T08:42:48Z WARN  buildlog_consultant::sbuild] Unknown key in summary: brz\n[2026-07-14T08:42:48Z DEBUG buildlog_consultant::common] Found match against (.*).py:[0-9]+: AssertionError on \"tests/trajectory_reader/test_extxyz_trajectory_reader.py:53: AssertionError\\n\" (line 4668)\n[2026-07-14T08:42:48Z WARN  ognibuild::debian::fix_build] Build failed with unidentified error. Giving up.\n","description":"worker","name":"worker.log","url":"/unchanged/c/python-dynasor/d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1/logs/worker.log"}},"my_review":null,"other_reviews":[],"primary_log":"worker","publish_history":[],"queue_position":60,"result_code":"unidentified","resume_from":"{build,build}","reviews":[],"revision":"git-v1:0139bc5e8051812c250d0a74f802f7c9705843e0","run":{"branch_url":"git+ssh://git@salsa.debian.org/python-team/packages/python-dynasor.git","build_version":null,"change_set":"d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1","codebase":"python-dynasor","command":"DEB_UPDATE_CHANGELOG=auto true","context":null,"debian_build_distribution":null,"debian_build_version":null,"description":"Unidentified error: ","duration_seconds":555,"failure_stage":"{build,build}","failure_transient":null,"finish_time":"2026-07-14T08:42:49.514726Z","id":"d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1","logfilenames":["worker.log","codemod.log","build.log"],"main_branch_revision":"git-v1:0139bc5e8051812c250d0a74f802f7c9705843e0","publish_status":"unknown","result_branches":[],"result_code":"unidentified","result_tags":[],"revision":"git-v1:0139bc5e8051812c250d0a74f802f7c9705843e0","start_time":"2026-07-14T08:33:33.662680Z","subpath":"","suite":"unchanged","target_branch_url":null,"vcs_type":"git","worker":"tyr"},"run_id":"d9200c7d-3831-4fc0-aa31-0d06ce8e0dc1","success_probability":0.0,"suite":"unchanged","total_previous_runs":1,"utcnow":"2026-09-07T12:30:06.766811046+00:00","vcs_type":"git","vcs_url":"git+ssh://git@salsa.debian.org/python-team/packages/python-dynasor.git","version":"0.0.0","worker_log_name":"worker.log","worker_name":"tyr"}