Skip to content

v1.0.0

Choose a tag to compare

@chad-earthscope chad-earthscope released this 26 Sep 01:47
· 18 commits to main since this release

Fixed

  • Using a record after its reader, buffer or trace list is closed, or after a later parse error, now raises ValueError instead of reading freed memory. This covers MS3Record, MS3TraceID, MS3TraceSeg, MS3RecordList and MS3RecordPtr.
  • Sample and raw-record views now keep their MS3Record alive.
  • MiniSEEDError only includes libmseed messages from the failing call.
  • An empty file is read as containing no records by every reader. Previously MS3Record.from_file() and MS3TraceList.from_file()/add_file() raised an error.
  • Fix a spurious AttributeError warning when MS3Record() construction fails.

Added

  • Type annotations and a py.typed marker for type checkers.
  • Contributing sections in README.md and development.md.
  • Links to the PyPI and conda-forge pages, and the version, in the docs.

Changed

  • Options to MS3RecordReader, MS3Record.from_buffer()/from_filelike()/parse()/parse_into()/generate()/to_file(), and the matching MS3TraceList methods are now keyword-only.
  • MS3Record.set_extra_header() raises TypeError for an unsupported value type.
  • with_datasamples() raises ValueError for a text sample that is not exactly one byte.
  • MS3RecordReader/MS3Record.iter_records() reject bool as a file descriptor.
  • validate_extra_headers()/valid_extra_headers() accept os.PathLike, and buffer parameters accept any buffer-protocol object.
  • Empty numpy sample arrays use the record's sample dtype instead of float64.
  • Faster record iteration, MS3Record.from_filelike(), with_datasamples() and MS3RecordValidator.validate().
  • Building from source requires setuptools>=77.

Removed

  • MS3Record.pack() and MS3TraceList.pack(); use generate().
  • Deprecated parameter aliases: MS3TraceList.add_data() start_time_str, start_time, start_time_seconds; MS3TraceList.generate() record_length and removed_packed; MS3TraceList.to_file() max_reclen; MS3RecordReader() input.
  • The internal recordptr/owns/owner parameters of MS3Record().
  • The skip_not_data option of MS3TraceList.add_filelike()/from_filelike(), which had no effect.
  • The unused NoSuchSourceID exception.