Skip to content

Upgrading hyperframe 5 to 6

Breaking5.2.0 → 6.1.0Breaking7Platform10Deprecated1New2Changed1Fixed6Other3

BreakingUpgrade verdict

7 breaking changes and 10 platform requirement changes.

  • All errors from this library now share one common parent error type, so you can catch that one type to handle any library error.
  • Code that catches the old parent exception for unknown frames may need updating.
  • Code that catches the old parent exception for invalid padding may need updating.
  • Code that catches the old parent exception for invalid frames may need updating.
Top 5 of 18 that need code or config changes

Requires Python >=3.9 from 6.1.0 (none stated before).

Breaking7
Introduces HyperframeError base exception class for all errors raised within hyperframe.
HyperframeError
Changes exception base class of UnknownFrameError to HyperframeError.
UnknownFrameErrorHyperframeError
Changes exception base class of InvalidPaddingError to HyperframeError.
InvalidPaddingErrorHyperframeError
Changes exception base class of InvalidFrameError to HyperframeError.
InvalidFrameErrorHyperframeError
Invalid frames with wrong stream id (zero vs. non-zero) now raise InvalidDataError.
InvalidDataError
Invalid SETTINGS frames (non-empty but ACK) now raise InvalidDataError.
InvalidDataError
Invalid ALTSVC frames with non-bytestring field or origin now raise InvalidDataError.
InvalidDataError
Platform10
Removes support for Python 3.6.
Removes support for Python 3.7.
Removes support for Python 3.8.
Adds support for Python 3.10.
Adds support for Python 3.11.
Adds support for Python 3.12.
Adds support for Python 3.13.
Adds support for Python 3.9.
Removes support for Python 2.7, 3.4, 3.5, and pypy.
Adds support for Python 3.8.
Deprecated1
Deprecates total_padding in favor of pad_length.
total_paddingpad_length