v0.2.0
Supports Python 3.10 and up (previously 3.13 only), so this is the first release
installable on the interpreters most deployments are actually running.
requires-pythonlowered to>=3.10, the floor the dependencies allow —typer
andpdfminer.sixboth require it.- The one version-dependent construct,
enum.StrEnum(3.11+), is shimmed in
ace_bacnet_devices._compat. A bareclass Foo(str, Enum)is not equivalent —
it stringifies asFoo.BARrather thanbar, and these values are written into
JSON and generated source — so the shim pins__str__/__format__tostras
the standard library does. Every enum spelling, all six bundled definitions as
JSON, and the generated legacy module are byte-identical on 3.10/3.11/3.12/3.13. - CI runs lint, type checks and tests as a matrix over all four versions, and the
wheel smoke test installs on 3.10 so a wheel that cannot install at the declared
floor fails before release. - The legacy
bacpypesadapter is now verified against the real stack rather than
stubs:asyncorestill exists on 3.10/3.11, sobacpypesinstalls there. All 53
constrained datatypes are encoded and compared byte for byte against the primitive
each subclasses, and 40 declared maxima are confirmed to reject out-of-range
values. These tests skip on 3.12+.
No change to the bundled vendor definitions: 617 proprietary properties across
eight BACnet vendor ids.