Releases: EarthScope/pymseed
Releases · EarthScope/pymseed
v0.6.0
Added
MS3Record.parse_into()instance method for reuse-based parsing in high-throughput
loops to eliminating per-record allocation/deallocation overhead.
Changed
MS3Record.sourceidproperty now skips an unnecessary NULL check.cdata_to_string()no longer wraps.decode()in a redundantstr()call.
v0.5.0
Added
MS3Record.parse()for parsing a single record from a bytes-like buffer.
Changed
- Breaking:
MS3Record.from_buffer()is now a generator. The context manager protocol (with from_buffer(...) as reader) and.read()method are no longer available. Plainforiteration is unchanged.- Replace
with from_buffer(buf) as r: for msr in r:withfor msr in from_buffer(buf): - Replace
with from_buffer(buf) as r: msr = r.read()withmsr = MS3Record.parse(buf)
- Replace
- Optimize
MS3Record.from_file()iteration by inlining next, eliminating a method dispatch per record
Removed
MS3RecordBufferReaderclass removed. UseMS3Record.from_buffer()(generator) orMS3Record.parse()for single records.
v0.4.0
MS3RecordValidator.from_file()significantly optimized
v0.3.0
Added
MS3Record.validate_extra_headers()to return detailed validation errorsMS3RecordValidatorclass for validating records in buffers and files
Changed
- Capture libmseed error/warning console output and include in MiniSEEDError exceptions
- Numerous edge-case fixes and usability improvements
- Build wheels for Python 3.14
- libmseed updated to v3.2.4
v0.2.0
Added
MS3Record.get_extra_header()to get a specified extra headerMS3Record.set_extra_header()to set a specified extra headerMS3Record.merge_extra_headers()to apply a JSON Merge Patch to extra headersMS3Record.valid_extra_headers()to validate extra headers
Changed
- libmseed updated to v3.2.3
v0.1.0
Added
MS3Record.generate(), a generator to produce miniSEED recordsMS3TraceList.generate(), a generator to produce miniSEED records
Deprecated
MS3Record.pack()functionality, useMS3Record.generate()insteadMS3TraceList.pack()functionality, useMS3TraceList.generate()instead
Changed
- Updated examples and inline docs to reflect current recommended patterns
v0.0.5
Fixed
- MS3Record.samprate consistently returns the rate in samples/second,
and MS3Record.samprate_raw returns the record's raw value. - Properly return None when MS3Record.sampletype is not set.
Added
- MS2Record.unpack_data() to decode sample payload after parsing.
- MS3Record.samprate_period_ns to return sample period in nanoseconds.
- MS3Record.samprate_period_seconds to return the period in seconds.
v0.0.4
Fixed
- Track update time of segments in an MS3TraceList consistently
Changed
- Update MS3TraceList.pack() to use new libmseed function for performance when packing with a specified
flush_idle_secondsset.
v0.0.3
Added
- MS3TraceList.from_buffer() to create a trace list from miniSEED in a buffer
- MS3TraceList.add_buffer() to add miniSEED data from a buffer
bufferparameter of MS3TracesList initialization- system_time() to return the current system time in nanoseconds
flush_idle_secondsparameter of MS3TraceList.pack() to control flushing of data buffers that have not been updated in a specified number of seconds- libmseed updated to v3.1.8
Changed
- MS3RecordReader parameter
sourcerenamed tobufferfor consistency
v0.0.2
Added
- List-like access to trace IDs in MS3TraceList (indexing, slicing, iteration)
- List-like access to segments in MS3TraceID (indexing, slicing, iteration)
- MS3Record.with_datasamples() is a context manager for setting sample buffer, type, counts
allowing an MS3Record to be used for record packing with zero-copy of data - MS3Record.from_file() and MS3Record.from_buffer() for convenience
- MS3TraceList.from_file() for consistency and future flexibility
- MS3TraceList.to_file() for writing miniSEED
- MS3TraceSeg.has_same_data() for comparison
- docstring documentation including examples
- Comprehensive repr() and summary str() methods
Changed
- Rename MS3TraceList.read_file() to MS3TraceList.add_file() for clarity
Removed
- MS3TraceList.numtraces in favor of supporting len() directly
- MS3TraceList.traceids() in favor of supporting iteration directly
- MS3TraceID.numsegments in favor of supporting len() directly
- MS3TraceID.segments() in favor of supporting iteration directly
- MS3TraceList.read_files() as unnecessary