From 28ebd7cec7f9c21959c78ec8174144b2b08bc906 Mon Sep 17 00:00:00 2001 From: Filip Kotoucek Date: Thu, 13 Aug 2026 12:56:47 +0200 Subject: [PATCH 1/2] Update Prusament resins and SLA entities from Directus production data Values synced from the SLX workflow database production export (slx-storage.prusa3d.com 1.0.10) Notable fixes: - viscosity_60c was 1-2 mPa.s (physically implausible) for all Prusament Model resins, Sandstone and Liqcreate Strong-X - Ultracur3D RG 35 B carried ST 45 values - Ultracur3D ST 45 B was missing all viscosities - Liqcreate Composite-X and Flex80 series corrected - New wash-media entities - Add Prusament Resin Wash Medium Canister --- data/material-containers/prusament-resin-1kg-bottle.yaml | 2 +- .../material-containers/prusament-resin-5kg-canister.yaml | 2 +- .../prusament-resin-wash-medium-canister.yaml | 7 +++++++ .../forward-am/forward-am-ultracur3d-rg-35-b.yaml | 8 ++++---- .../forward-am/forward-am-ultracur3d-st-45-b.yaml | 4 ++++ data/materials/liqcreate/liqcreate-composite-x.yaml | 8 ++++---- data/materials/liqcreate/liqcreate-rigid-pro.yaml | 2 +- data/materials/liqcreate/liqcreate-strong-x.yaml | 2 +- .../prusament-resin/prusament-resin-flex80-black.yaml | 8 ++++---- .../prusament-resin-flex80-transparent-clear.yaml | 8 ++++---- .../prusament-resin/prusament-resin-flex80-white.yaml | 8 ++++---- .../prusament-resin/prusament-resin-impact65-black.yaml | 8 ++++---- .../prusament-resin-model-alabaster-white.yaml | 2 +- .../prusament-resin-model-anthracite-grey.yaml | 2 +- .../prusament-resin/prusament-resin-model-brick-red.yaml | 4 ++-- .../prusament-resin-model-bright-cyan.yaml | 2 +- .../prusament-resin-model-bright-magenta.yaml | 2 +- .../prusament-resin-model-bright-yellow.yaml | 2 +- .../prusament-resin-model-classic-red.yaml | 2 +- .../prusament-resin-model-grass-green.yaml | 2 +- .../prusament-resin-model-neutral-beige.yaml | 2 +- .../prusament-resin-model-prusa-orange.yaml | 2 +- .../prusament-resin-model-prusa-pro-green.yaml | 2 +- .../prusament-resin/prusament-resin-model-rich-black.yaml | 2 +- .../prusament-resin/prusament-resin-model-sandstone.yaml | 2 +- .../prusament-resin/prusament-resin-model-solid-grey.yaml | 2 +- .../prusament-resin-model-terra-brown.yaml | 2 +- .../prusament-resin-model-transparent-amber.yaml | 2 +- .../prusament-resin-model-transparent-clear.yaml | 2 +- .../prusament-resin-model-transparent-green.yaml | 2 +- .../prusament-resin-model-transparent-red.yaml | 2 +- .../prusament-resin-model-ultra-violet.yaml | 2 +- data/wash-media/3d-basics/3d-basics-dpm-wash-solvent.yaml | 7 +++++++ data/wash-media/henkel/henkel-loctite-3d-cleaner-c.yaml | 7 +++++++ .../prusament-resin/prusament-resin-cleaner-dpm.yaml | 7 +++++++ 35 files changed, 81 insertions(+), 49 deletions(-) create mode 100644 data/material-containers/prusament-resin-wash-medium-canister.yaml create mode 100644 data/wash-media/3d-basics/3d-basics-dpm-wash-solvent.yaml create mode 100644 data/wash-media/henkel/henkel-loctite-3d-cleaner-c.yaml create mode 100644 data/wash-media/prusament-resin/prusament-resin-cleaner-dpm.yaml diff --git a/data/material-containers/prusament-resin-1kg-bottle.yaml b/data/material-containers/prusament-resin-1kg-bottle.yaml index 12b451a1e2..92de35aca6 100644 --- a/data/material-containers/prusament-resin-1kg-bottle.yaml +++ b/data/material-containers/prusament-resin-1kg-bottle.yaml @@ -5,4 +5,4 @@ brand: slug: prusament-resin name: Prusament Resin 1kg Bottle volumetric_capacity: 1000 -empty_weight: 105 +empty_weight: 100 diff --git a/data/material-containers/prusament-resin-5kg-canister.yaml b/data/material-containers/prusament-resin-5kg-canister.yaml index 8a5ed1f226..f83294198c 100644 --- a/data/material-containers/prusament-resin-5kg-canister.yaml +++ b/data/material-containers/prusament-resin-5kg-canister.yaml @@ -5,4 +5,4 @@ brand: slug: prusament-resin name: Prusament Resin 5kg Canister volumetric_capacity: 5000 -empty_weight: 285 +empty_weight: 270 diff --git a/data/material-containers/prusament-resin-wash-medium-canister.yaml b/data/material-containers/prusament-resin-wash-medium-canister.yaml new file mode 100644 index 0000000000..d4f7e85d35 --- /dev/null +++ b/data/material-containers/prusament-resin-wash-medium-canister.yaml @@ -0,0 +1,7 @@ +uuid: 71196860-5889-57b3-ab73-95152198b5c2 +slug: prusament-resin-wash-medium-canister +class: SLA +brand: + slug: prusament-resin +name: Prusament Resin Wash Medium Canister +volumetric_capacity: 30000 diff --git a/data/materials/forward-am/forward-am-ultracur3d-rg-35-b.yaml b/data/materials/forward-am/forward-am-ultracur3d-rg-35-b.yaml index e6683cc87e..49fa1ec030 100644 --- a/data/materials/forward-am/forward-am-ultracur3d-rg-35-b.yaml +++ b/data/materials/forward-am/forward-am-ultracur3d-rg-35-b.yaml @@ -11,7 +11,7 @@ primary_color: properties: density: 1.11 cure_wavelength: 405 - viscosity_18c: 530 - viscosity_25c: 312 - viscosity_40c: 127 - viscosity_60c: 51 + viscosity_18c: 1798 + viscosity_25c: 925 + viscosity_40c: 279 + viscosity_60c: 87 diff --git a/data/materials/forward-am/forward-am-ultracur3d-st-45-b.yaml b/data/materials/forward-am/forward-am-ultracur3d-st-45-b.yaml index 9651483d90..09c4402bb9 100644 --- a/data/materials/forward-am/forward-am-ultracur3d-st-45-b.yaml +++ b/data/materials/forward-am/forward-am-ultracur3d-st-45-b.yaml @@ -10,3 +10,7 @@ primary_color: color_rgba: '#595959ff' properties: density: 1.12 + viscosity_18c: 530 + viscosity_25c: 312 + viscosity_40c: 127 + viscosity_60c: 51 diff --git a/data/materials/liqcreate/liqcreate-composite-x.yaml b/data/materials/liqcreate/liqcreate-composite-x.yaml index 309c712faf..f4cec9a173 100644 --- a/data/materials/liqcreate/liqcreate-composite-x.yaml +++ b/data/materials/liqcreate/liqcreate-composite-x.yaml @@ -10,7 +10,7 @@ primary_color: properties: density: 1.52 cure_wavelength: 405 - viscosity_18c: 313 - viscosity_25c: 196 - viscosity_40c: 86 - viscosity_60c: 39 + viscosity_18c: 1784 + viscosity_25c: 1223 + viscosity_40c: 580 + viscosity_60c: 276 diff --git a/data/materials/liqcreate/liqcreate-rigid-pro.yaml b/data/materials/liqcreate/liqcreate-rigid-pro.yaml index 1dbf1d9cb4..01c28d7c7e 100644 --- a/data/materials/liqcreate/liqcreate-rigid-pro.yaml +++ b/data/materials/liqcreate/liqcreate-rigid-pro.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 556 viscosity_25c: 285 viscosity_40c: 92 - viscosity_60c: 1 + viscosity_60c: 32 diff --git a/data/materials/liqcreate/liqcreate-strong-x.yaml b/data/materials/liqcreate/liqcreate-strong-x.yaml index efca1eb2dd..02718dd10a 100644 --- a/data/materials/liqcreate/liqcreate-strong-x.yaml +++ b/data/materials/liqcreate/liqcreate-strong-x.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 538 viscosity_25c: 278 viscosity_40c: 92 - viscosity_60c: 1 + viscosity_60c: 32 diff --git a/data/materials/prusament-resin/prusament-resin-flex80-black.yaml b/data/materials/prusament-resin/prusament-resin-flex80-black.yaml index 865ef6ccca..ad85dae8ee 100644 --- a/data/materials/prusament-resin/prusament-resin-flex80-black.yaml +++ b/data/materials/prusament-resin/prusament-resin-flex80-black.yaml @@ -11,7 +11,7 @@ properties: density: 1.0 hardness_shore_a: 80 cure_wavelength: 405 - viscosity_18c: 255 - viscosity_25c: 148 - viscosity_40c: 58 - viscosity_60c: 26 + viscosity_18c: 254 + viscosity_25c: 154 + viscosity_40c: 64 + viscosity_60c: 27 diff --git a/data/materials/prusament-resin/prusament-resin-flex80-transparent-clear.yaml b/data/materials/prusament-resin/prusament-resin-flex80-transparent-clear.yaml index 6d9688a224..d68fa631d8 100644 --- a/data/materials/prusament-resin/prusament-resin-flex80-transparent-clear.yaml +++ b/data/materials/prusament-resin/prusament-resin-flex80-transparent-clear.yaml @@ -13,7 +13,7 @@ properties: density: 1.0 hardness_shore_a: 80 cure_wavelength: 405 - viscosity_18c: 255 - viscosity_25c: 148 - viscosity_40c: 58 - viscosity_60c: 26 + viscosity_18c: 254 + viscosity_25c: 154 + viscosity_40c: 64 + viscosity_60c: 27 diff --git a/data/materials/prusament-resin/prusament-resin-flex80-white.yaml b/data/materials/prusament-resin/prusament-resin-flex80-white.yaml index 9858d16796..29ee08fd4e 100644 --- a/data/materials/prusament-resin/prusament-resin-flex80-white.yaml +++ b/data/materials/prusament-resin/prusament-resin-flex80-white.yaml @@ -11,7 +11,7 @@ properties: density: 1.0 hardness_shore_a: 80 cure_wavelength: 405 - viscosity_18c: 255 - viscosity_25c: 148 - viscosity_40c: 58 - viscosity_60c: 26 + viscosity_18c: 254 + viscosity_25c: 154 + viscosity_40c: 64 + viscosity_60c: 27 diff --git a/data/materials/prusament-resin/prusament-resin-impact65-black.yaml b/data/materials/prusament-resin/prusament-resin-impact65-black.yaml index 3aeda4bcfd..a7ed5a443e 100644 --- a/data/materials/prusament-resin/prusament-resin-impact65-black.yaml +++ b/data/materials/prusament-resin/prusament-resin-impact65-black.yaml @@ -10,7 +10,7 @@ primary_color: properties: density: 1.11 cure_wavelength: 405 - viscosity_18c: 404 - viscosity_25c: 234 - viscosity_40c: 91 - viscosity_60c: 1 + viscosity_18c: 226 + viscosity_25c: 133 + viscosity_40c: 52 + viscosity_60c: 21 diff --git a/data/materials/prusament-resin/prusament-resin-model-alabaster-white.yaml b/data/materials/prusament-resin/prusament-resin-model-alabaster-white.yaml index e1791303b3..e7b9ab3c03 100644 --- a/data/materials/prusament-resin/prusament-resin-model-alabaster-white.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-alabaster-white.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-anthracite-grey.yaml b/data/materials/prusament-resin/prusament-resin-model-anthracite-grey.yaml index d2ec80121e..fdc3dd24f1 100644 --- a/data/materials/prusament-resin/prusament-resin-model-anthracite-grey.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-anthracite-grey.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-brick-red.yaml b/data/materials/prusament-resin/prusament-resin-model-brick-red.yaml index 9fe25b73b6..4645ac51ad 100644 --- a/data/materials/prusament-resin/prusament-resin-model-brick-red.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-brick-red.yaml @@ -12,5 +12,5 @@ properties: cure_wavelength: 405 viscosity_18c: 287 viscosity_25c: 167 - viscosity_40c: 68 - viscosity_60c: 1 + viscosity_40c: 66 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-bright-cyan.yaml b/data/materials/prusament-resin/prusament-resin-model-bright-cyan.yaml index 3264331433..3004170104 100644 --- a/data/materials/prusament-resin/prusament-resin-model-bright-cyan.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-bright-cyan.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-bright-magenta.yaml b/data/materials/prusament-resin/prusament-resin-model-bright-magenta.yaml index 36345e27d1..1ea7c8c679 100644 --- a/data/materials/prusament-resin/prusament-resin-model-bright-magenta.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-bright-magenta.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-bright-yellow.yaml b/data/materials/prusament-resin/prusament-resin-model-bright-yellow.yaml index b4fea7f533..8653c6f62e 100644 --- a/data/materials/prusament-resin/prusament-resin-model-bright-yellow.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-bright-yellow.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-classic-red.yaml b/data/materials/prusament-resin/prusament-resin-model-classic-red.yaml index 7f6e2a9a28..6937832dc9 100644 --- a/data/materials/prusament-resin/prusament-resin-model-classic-red.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-classic-red.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-grass-green.yaml b/data/materials/prusament-resin/prusament-resin-model-grass-green.yaml index 0ad5eac13a..4bd6576d8a 100644 --- a/data/materials/prusament-resin/prusament-resin-model-grass-green.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-grass-green.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-neutral-beige.yaml b/data/materials/prusament-resin/prusament-resin-model-neutral-beige.yaml index 3449f400d8..7a136d949c 100644 --- a/data/materials/prusament-resin/prusament-resin-model-neutral-beige.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-neutral-beige.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-prusa-orange.yaml b/data/materials/prusament-resin/prusament-resin-model-prusa-orange.yaml index bcc039e7c5..44e9e4202a 100644 --- a/data/materials/prusament-resin/prusament-resin-model-prusa-orange.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-prusa-orange.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-prusa-pro-green.yaml b/data/materials/prusament-resin/prusament-resin-model-prusa-pro-green.yaml index bb5cec2634..1e9cd5d228 100644 --- a/data/materials/prusament-resin/prusament-resin-model-prusa-pro-green.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-prusa-pro-green.yaml @@ -11,4 +11,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-rich-black.yaml b/data/materials/prusament-resin/prusament-resin-model-rich-black.yaml index e8a0437b71..73208eb3a2 100644 --- a/data/materials/prusament-resin/prusament-resin-model-rich-black.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-rich-black.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-sandstone.yaml b/data/materials/prusament-resin/prusament-resin-model-sandstone.yaml index 36436c41be..fde781c74b 100644 --- a/data/materials/prusament-resin/prusament-resin-model-sandstone.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-sandstone.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 2 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-solid-grey.yaml b/data/materials/prusament-resin/prusament-resin-model-solid-grey.yaml index d9c0fb577f..8d91505112 100644 --- a/data/materials/prusament-resin/prusament-resin-model-solid-grey.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-solid-grey.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-terra-brown.yaml b/data/materials/prusament-resin/prusament-resin-model-terra-brown.yaml index 624cdf27d0..79912628bf 100644 --- a/data/materials/prusament-resin/prusament-resin-model-terra-brown.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-terra-brown.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-transparent-amber.yaml b/data/materials/prusament-resin/prusament-resin-model-transparent-amber.yaml index 7c1c9ca887..8633c13778 100644 --- a/data/materials/prusament-resin/prusament-resin-model-transparent-amber.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-transparent-amber.yaml @@ -15,4 +15,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-transparent-clear.yaml b/data/materials/prusament-resin/prusament-resin-model-transparent-clear.yaml index e2139689aa..5e18baf71c 100644 --- a/data/materials/prusament-resin/prusament-resin-model-transparent-clear.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-transparent-clear.yaml @@ -15,4 +15,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-transparent-green.yaml b/data/materials/prusament-resin/prusament-resin-model-transparent-green.yaml index 4944e245ee..1272ecba8a 100644 --- a/data/materials/prusament-resin/prusament-resin-model-transparent-green.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-transparent-green.yaml @@ -15,4 +15,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-transparent-red.yaml b/data/materials/prusament-resin/prusament-resin-model-transparent-red.yaml index 1d995d2da4..1451ad7e27 100644 --- a/data/materials/prusament-resin/prusament-resin-model-transparent-red.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-transparent-red.yaml @@ -15,4 +15,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/materials/prusament-resin/prusament-resin-model-ultra-violet.yaml b/data/materials/prusament-resin/prusament-resin-model-ultra-violet.yaml index a01e344d7f..a57f19032a 100644 --- a/data/materials/prusament-resin/prusament-resin-model-ultra-violet.yaml +++ b/data/materials/prusament-resin/prusament-resin-model-ultra-violet.yaml @@ -13,4 +13,4 @@ properties: viscosity_18c: 287 viscosity_25c: 167 viscosity_40c: 66 - viscosity_60c: 1 + viscosity_60c: 26 diff --git a/data/wash-media/3d-basics/3d-basics-dpm-wash-solvent.yaml b/data/wash-media/3d-basics/3d-basics-dpm-wash-solvent.yaml new file mode 100644 index 0000000000..8de2d915e0 --- /dev/null +++ b/data/wash-media/3d-basics/3d-basics-dpm-wash-solvent.yaml @@ -0,0 +1,7 @@ +slug: 3d-basics-dpm-wash-solvent +uuid: 4c47e887-013c-4f4a-8857-88f06fe8183f +brand: + slug: 3d-basics +name: 3D Basics DPM Wash Solvent +density: 0.95 +wash_capacity: 1000 diff --git a/data/wash-media/henkel/henkel-loctite-3d-cleaner-c.yaml b/data/wash-media/henkel/henkel-loctite-3d-cleaner-c.yaml new file mode 100644 index 0000000000..5b91f8e106 --- /dev/null +++ b/data/wash-media/henkel/henkel-loctite-3d-cleaner-c.yaml @@ -0,0 +1,7 @@ +slug: henkel-loctite-3d-cleaner-c +uuid: 53d4a8a3-d2dd-4e0b-b69e-051fcc33845b +brand: + slug: henkel +name: LOCTITE 3D Cleaner C +density: 0.96 +wash_capacity: 1000 diff --git a/data/wash-media/prusament-resin/prusament-resin-cleaner-dpm.yaml b/data/wash-media/prusament-resin/prusament-resin-cleaner-dpm.yaml new file mode 100644 index 0000000000..c7195d35ca --- /dev/null +++ b/data/wash-media/prusament-resin/prusament-resin-cleaner-dpm.yaml @@ -0,0 +1,7 @@ +slug: prusament-resin-cleaner-dpm +uuid: 44949b6e-875d-443c-89ce-8973f3a93af3 +brand: + slug: prusament-resin +name: Prusament Resin Cleaner DPM +density: 0.95 +wash_capacity: 1000 From 66d2b01cfc87c31ff1e3c91d508954adb690ebeb Mon Sep 17 00:00:00 2001 From: Filip Kotoucek Date: Tue, 8 Sep 2026 15:42:24 +0200 Subject: [PATCH 2/2] lib: load wash media and flat container directory, use libyaml DatabaseLoader gets the wash_media entity, no longer expects brand subdirectories for material-containers (the files are flat) and parses with CSafeLoader when available. --- scripts/lib.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/lib.py b/scripts/lib.py index b280604ad2..6f035d3ead 100644 --- a/scripts/lib.py +++ b/scripts/lib.py @@ -8,6 +8,9 @@ from typing import Any, Dict import yaml +# libyaml parser when available: several times faster than the pure Python one +_LOADER = getattr(yaml, "CSafeLoader", yaml.SafeLoader) + class DatabaseLoader: """Loads entity data from YAML files""" @@ -31,6 +34,10 @@ class DatabaseLoader: 'material_containers': { 'directory': 'data/material-containers', 'primary_key': 'slug', + }, + 'wash_media': { + 'directory': 'data/wash-media', + 'primary_key': 'slug', 'subdirectories_by_brand': True, }, } @@ -52,8 +59,8 @@ def load_schema(self) -> bool: def load_yaml_file(self, path: Path) -> Any: """Load a YAML file""" try: - with open(path, 'r') as f: - return yaml.safe_load(f) + with open(path, 'r', encoding='utf-8') as f: + return yaml.load(f, Loader=_LOADER) except Exception as e: self.errors.append(f"Failed to parse YAML {path}: {e}") return None