GSD releases follow semantic versioning.
Fixed:
- Make NumPy 2.0 requirement optional (#405).
Fixed:
- Prevent downgrading file versions when opening in write mode.
Added:
GSD_TYPE_CHARACTER
chunk type for string data - valid in file layer versions 2.1 and later (#391).
Changed:
- The
log
dictionary in a hoomd frame now accepts string values.read_log
correspondingly produces a NumPy array of variable length strings (#391). - Require NumPy >= 2.0 (#391).
Added:
- Support Python 3.13 (#388).
Removed:
- Support for Python 3.9 (#388).
Changed:
- Improved build instructions (#376).
Added:
- Support numpy 2.0 (#367).
Changed:
- Navigate the documentation with arrow keys (#365).
- Add button to copy code snippets from the documentation (#365).
- Remove singularity reference from the documentation (#365).
Removed:
- Support for Python 3.8 (#367).
Fixed:
- Write all pending index entries to the file when
gsd_flush()
is called aftergsd_write_chunk()
and beforegsd_end_frame()
(#319). - Readthedocs builds with pandas 2.2.0 (#322).
- Import without seg fault when built with CMake on macOS (#323).
- Internal cached data remains valid when users modify frames obtained by indexing trajectories (#324).
Changed:
- Provide support via GitHub discussions (#308).
- Use ruff (#317).
- Perform fewer implicit flushes when using the
gsd.hoomd
python API (#325).
Added:
- Support Python 3.12 (#283).
Fixed:
- Raise a
FileExistsError
when opening a file that already exists withmode = 'x'
(#270).
Fixed:
hoomd.read_log
no longer triggers a numpy deprecation warning (#267).
Added:
HOOMDTrajectory.flush
- flush buffered writes on an openHOOMDTrajectory
(#266).
Fixed:
- Prevent
ValueError: signal only works in main thread of the main interpreter
when importing gsd in a non-main thread (#257).
Added:
gsd.version.version
- version string identifier. PEP8 compliant name replaces__version__
.GSDFile.flush
- flush write buffers (C APIgsd_flush
) (#237).GSDFile.maximum_write_buffer_size
- get/set the write buffer size (C APIgsd_get_maximum_write_buffer_size
/gsd_set_maximum_write_buffer_size
) (#237).GSDFile.index_entries_to_buffer
- get/set the write buffer size (C APIindex_entries_to_buffer
/index_entries_to_buffer
) (#237).- On importing gsd, install a
SIGTERM
handler that callssys.exit(1)
(#237).
Changed:
write_chunk
buffers writes across frames to increase performance (#237).- Use Doxygen and breathe to generate C API documentation in Sphinx (#237).
Removed:
gsd.__version__
- usegsd.version.version
.gsd.hoomd.Snapshot
- usegsd.hoomd.Frame
(#249).gsd.hoomd.HOOMDTrajectory.read_frame
- usegsd.hoomd.HOOMDTrajectory.__getitem__
(#249).- The file modes
'wb'
,'wb+'
,'rb'
,'rb+'
,'ab'
,'xb'
, and'xb+'
. Use'r'
,'r+'
,'w'
,'x'
, or'a'
(#249).
Added:
- File modes
'r'
,'r+'
,'w'
,'x'
, and'a'
(#238).
Changed:
- Test on gcc9, clang10, and newer (#235).
- Test and provide binary wheels on Python 3.8 and newer (#235).
Deprecated:
- File modes
'wb'
,'wb+'
,'rb'
,'rb+'
,'ab'
,'xb'
, and'xb+'
(#238). - [C API]
GSD_APPEND
file open mode (#238).
Fixed:
- Reduce memory usage in most use cases.
- Reduce likelihood of data corruption when writing GSD files.
Added:
gsd.hoomd.read_log
- Read log quantities from a GSD file.gsd.hoomd.Frame
class to replacegsd.hoomd.Snapshot
.
Changed:
- Improved documentation.
Deprecated:
gsd.hoomd.Snapshot
.
Added
- Support Python 3.11.
Fixed:
- Default values are now written to frame N (N != 0) when non-default values exist in frame 0.
- Data chunks can now be read from files opened in 'wb', 'xb', and 'ab' modes.
Changed:
- Raise an error when writing a frame with duplicate types.
Fixed
- Support Python >=3.6.
Fixed
- Correctly handle non-ASCII characters on Windows.
- Document that the
fname
argument togsd_
C API functions is UTF-8 encoded.
Added
- Support for Python 3.10.
- Support for clang 13.
Changed
- Improved documentation.
Deprecated
HOOMDTrajectory.read_frame
- use indexing (trajectory[index]
) to access frames from a trajectory.
Added
- MacOS and Windows wheels on PyPI.
Fixed
- Documented array shapes for angles, dihedrals, and impropers.
Added
- Support macos-arm64.
Changed
- Stop testing with clang 4-5, gcc 4.8-6.
Changed
- Set
gsd.hoomd.ConfigurationData.dimensions
default based onbox
's L_z value.
Fixed
- Failure in
test_fl.py
when run by a user and GSD was installed by root.
Added
- Support clang 11.
- Support Python 3.9.
Changed
- Install unit tests with the Python package.
Fixed
- Compile error on macOS 10.15.
Added
- Command line convenience interface for opening a GSD file.
Fixed
- Adding missing
close
method toHOOMDTrajectory
. - Documentation improvements.
Fixed
- List defaults in
gsd.fl.open
documentation.
Added
- Shape specification for sphere unions.
Note
- This release introduces a new file storage format.
- GSD >= 2.0 can read and write to files created by GSD 1.x.
- Files created or upgraded by GSD >= 2.0 can not be opened by GSD < 1.x.
Added
- The
upgrade
method converts a GSD 1.0 file to a GSD 2.0 file in place. - Support arbitrarily long chunk names (only in GSD 2.0 files).
Changed
gsd.fl.open
acceptsNone
forapplication
,schema
, andschema_version
when opening files for reading.- Improve read latency when accessing files with thousands of chunk names in a frame (only for GSD 2.0 files).
- Buffer small writes to improve write performance.
- Improve performance and reduce memory usage in read/write modes ('rb+', 'wb+' and ('xb+').
- C API: functions return error codes from the
gsd_error
enum. v2.x integer error codes differ from v1.x, use the enum to check. For example:if (retval == GSD_ERROR_IO)
. - Python, Cython, and C code must follow strict style guidelines.
Removed
gsd.fl.create
- usegsd.fl.open
.gsd.hoomd.create
- usegsd.hoomd.open
.GSDFile
v1.0 compatibility mode - usegsd.fl.open
.hoomdxml2gsd.py
.
Fixed
- Allow more than 127 data chunk names in a single GSD file.
- Improve performance of first frame write.
- Allow pickling of GSD file handles opened in read only mode.
- Removed Cython-generated code from repository.
fl.pyx
will be cythonized during installation.
- Fixed preprocessor directive affecting Windows builds using setup.py.
- Documentation updates
- Support chunk sizes larger than 2GiB
- Support writing chunks wider than 255 from Python.
- File API: Add
find_matching_chunk_names()
HOOMD
schema 1.4: Add user defined logged data.HOOMD
schema 1.4: Addtype_shapes
specification.- pytest >= 3.9.0 is required to run unit tests.
gsd.fl.open
andgsd.hoomd.open
accept objects implementingos.PathLike
.- Report an error when attempting to write a chunk that fails to allocate a name.
- Reduce virtual memory usage in
rb
andwb
open modes. - Additional checks for corrupt GSD files on open.
- Synchronize after expanding file index.
- Correctly raise
IndexError
when attempting to read frames before the first frame. - Raise
RuntimeError
when importinggsd
in unsupported Python versions.
- Slicing a HOOMDTrajectory object returns a view that can be used to directly select frames from a subset or sliced again.
- raise
IndexError
when attempting to read frames before the first frame. - Dropped support for Python 2.
- Add
hpmc/sphere/orientable
to HOOMD schema. - HOOMD schema 1.3
- PyPI binary wheels now support numpy>=1.9.3,<2
- Documentation updates
- The length of sliced HOOMDTrajectory objects can be determined with the
built-in
len()
function.
- Silence numpy deprecation warnings
- Add
pyproject.toml
file that definesnumpy
as a proper build dependency (requires pip >= 10) - Reorganize documentation
- Revert
setup.py
changes in v1.5.2 - these do not work in most circumstances. - Include
sys/stat.h
on all architectures.
- Close file handle on errors in
gsd_open
. - Always close file handle in
gsd_close
. setup.py
now correctly pulls in the numpy dependency.
- Documentation fixes.
- Read and write HPMC shape state data.
- Support reading and writing chunks with 0 length. No schema changes are necessary to support this.
- Document
state
entries in the HOOMD schema. - No changes to the gsd format or reader code in v1.3.
- Add
gsd.hoomd.open()
method which can create and open hoomd gsd files. - Add
gsd.fl.open()
method which can create and open gsd files. - The previous create/class
GSDFile
instantiation is still supported for backward compatibility.
- Add special pairs section pairs/ to HOOMD schema.
- HOOMD schema version is now 1.1.
- Fix compile error on more strict POSIX systems.
Initial release.