Repository navigation
2.9.0
Published to PyPI as werk24==2.9.0. Not purely additive: two ask types
the API no longer answers have been removed (see "Removed" below).
New in the models
- Features response gains four lists:
slots: elongated holes with round ends (2x Slot 14x15,3x Slot Ø10), withwidthandlength.retaining_ring_grooves: grooves for retaining rings on a shaft or in a bore (DIN 471 30x1,5), with the ring side, nominal diameter, ring thickness and a manufacturer's designation.splines: straight-sided splines (ISO 14 - 8 x 36 x 40).involute_splines: involute splines (DIN 5480 - W 40 x 2 x 30 x 18 x 8f).
CenterHole.threadcarries the thread of a threaded center hole (DIN 332-D M16).GeneralTolerancesgainstolerance_note(the general tolerance note as written) andtolerance_table(explicit linear tolerance rules as rows).Roughness.thermal_cut_quality(and the v1 roughness label) carries an ISO 9013 thermal cut quality.
Compatibility
- Response fields this version does not know are kept. A v2 answer is parsed with them kept on the model as plain data (
response.<field>,response.model_extra), and the first time each one is seen a warning names it and says to upgrade. Older versions dropped such fields without a word. Models built directly still ignore unknown fields, andmodel_dump()still leaves kept ones out. - An answer the client cannot read at all still stays the plain dict the server sent, and is now logged once per kind of failure.
Removed
-
EXCEL_SUMMARYask (W24AskType.EXCEL_SUMMARY,W24AskExcelSummary). The API no longer produces it. -
CANVAS_TABLESask (W24AskType.CANVAS_TABLES,W24AskCanvasTables). The API never returned a result for it.An ask list that still names either is now refused when it is built (
ValidationError, orUnknown Ask Typefrom the v1 deserializer). -
reasononTechreadException. The API never sent it. A message that still carries it parses as before.
Client and transport
- Each result is handed over as soon as it arrives. Previously a result was held back until the server sent the next message, so an early result such as a sheet image could wait many seconds. Order is unchanged.
RequestTooLargeExceptionnames both limits: 10 MiB for a drawing sent withread_drawing, about 4.6 MB for a callback request.
Docs
- The three priority levels are described by name:
PRIO1Express (picked up within 10 seconds, p99),PRIO2Priority (within 1 minute),PRIO3Best-effort (within 10 minutes). The enum values are unchanged. - The confidence scale is documented (1.0 nothing in doubt, 0.8 or above a reasonable reading, below 0.8 at least one concrete reason to doubt it) along with the objects it covers.
confidence_minis no longer applied by the API; the field stays valid. - Webhook delivery is documented as at-least-once, with how to deduplicate.
read_drawing_sync's return value is documented.
Dependencies
Tested pins refreshed: pydantic 2.14.1, aiohttp 3.14.5, typer 0.27.3, cryptography 50.0.2, python-dotenv 1.2.4, certifi 2026.10.23. The constraints in pyproject.toml are unchanged for consumers.
Full changelog: 2.8.0...2.9.0