chore(deps): lock file maintenance#98
Open
renovate[bot] wants to merge 2 commits into
Open
Conversation
b8e04d5 to
6571406
Compare
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|
| ✅ BASH | shellcheck | 2 | 0 | 0 | 0.4s | |
| ✅ BASH | shfmt | 2 | 0 | 0 | 0 | 1.02s |
| jscpd | yes | 561 | no | 13.18s | ||
| ✅ JSON | prettier | 41 | 28 | 0 | 0 | 3.93s |
| ✅ JSON | v8r | 41 | 0 | 0 | 7.67s | |
| ✅ MARKDOWN | rumdl | 59 | 0 | 0 | 0 | 1.26s |
| ruff | yes | yes | 64 | no | 1.99s | |
| ✅ PYTHON | ruff-format | yes | yes | no | no | 0.33s |
| ✅ REPOSITORY | git_diff | yes | no | no | 1.34s | |
| cspell | 339 | 60 | 0 | 10.09s |
Detailed Issues
⚠️ SPELL / cspell - 60 errors
exp/2026/05/13/toy/data/30-inverse-activation-diff-forward-no-collision-summary.json:13:4 - Unknown word (bbox) -- "bbox_diagonal": 1.732050
Suggestions: [box, mbox, vbox, xbox, Xbox]
exp/2026/05/13/toy/data/40-inverse-activation-diff-forward-collision-summary.json:17:12 - Unknown word (atol) -- "forward_atol": 0.001,
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/13/toy/data/40-inverse-activation-diff-forward-collision-summary.json:19:4 - Unknown word (bbox) -- "bbox_diagonal": 2.872281
Suggestions: [box, mbox, vbox, xbox, Xbox]
exp/2026/05/13/toy/data/41-inverse-active-tet-activation-diff-forward-collision-summary.json:23:12 - Unknown word (atol) -- "forward_atol": 0.001,
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/13/toy/data/41-inverse-active-tet-activation-diff-forward-collision-summary.json:29:4 - Unknown word (bbox) -- "bbox_diagonal": 2.872281
Suggestions: [box, mbox, vbox, xbox, Xbox]
exp/2026/05/13/toy/src/20-smas-layer-bottom-force-collision.py:151:22 - Unknown word (Efat) -- mesh.field_data["Efat"] = np.asarray([cfg
Suggestions: [Efta, Feat, Erat, Eat, Eft]
exp/2026/05/13/toy/src/20-smas-layer-bottom-force-collision.py:152:22 - Unknown word (Esmas) -- mesh.field_data["Esmas"] = np.asarray([cfg
Suggestions: [Smas, Seams, Seas, edams, Edams]
exp/2026/05/20/inverse-face/docs/20-inverse-face.md:42:38 - Unknown word (atol) -- tolerance: `rtol=0.0005`, `atol=0`
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/20/inverse-face/docs/20-inverse-face.md:43:38 - Unknown word (atol) -- tolerance: `rtol=0.0005`, `atol=0`
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/20/inverse-face/docs/30-inverse-face-3152k.md:47:41 - Unknown word (atol) -- PNCG, `rtol = 5e-4`, `atol = 0`, `max_steps =
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/20/inverse-face/docs/30-inverse-face-3152k.md:48:60 - Unknown word (atol) -- fallback, `rtol = 5e-4`, `atol = 0`,
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/20/inverse-face/docs/30-transfer-activation-3152k.md:75:11 - Unknown word (atol) -- forward_atol: 0.0
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/20/inverse-face/docs/31-transfer-activation-3152k-smas1.md:72:11 - Unknown word (atol) -- forward_atol: 0.0
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/forward-face/docs/10-forward-face-3152k.md:79:142 - Unknown word (atol) -- defaults: `rtol = 5e-4`, `atol = 0`, `max_steps =
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/forward-face/docs/20-forward-face-515k-nosmas.md:85:98 - Unknown word (atol) -- with `rtol = 5e-4`, `atol = 0`, `max_steps =
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/forward-face/docs/30-inverse-face-515k-nosmas.md:36:223 - Unknown word (atol) -- with `rtol = 5e-4`, `atol = 0`, `max_steps =
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/forward-face/src/20-forward-face.py:393:9 - Unknown word (cmap) -- cmap="viridis",
Suggestions: [camp, mcap, chap, clap, crap]
exp/2026/05/27/forward-face/src/20-forward-face.py:393:15 - Unknown word (viridis) -- cmap="viridis",
Suggestions: [virid, veridic, virions, viridian, viridity]
exp/2026/05/27/forward-face/src/20-forward-face.py:404:9 - Unknown word (cmap) -- cmap="viridis",
Suggestions: [camp, mcap, chap, clap, crap]
exp/2026/05/27/forward-face/src/20-forward-face.py:404:15 - Unknown word (viridis) -- cmap="viridis",
Suggestions: [virid, veridic, virions, viridian, viridity]
exp/2026/05/27/inverse-face/docs/10-inverse-face-3152k-expression001.md:31:82 - Unknown word (atol) -- with `rtol = 5e-4`, `atol = 0`, and `max_steps
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/inverse-face/docs/10-inverse-face-3152k-expression001.md:69:145 - Unknown word (atol) -- baseline because `forward_atol = 0`. The successful
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/inverse-face/docs/10-worklog.md:12:218 - Unknown word (atol) -- with `rtol = 5e-4`, `atol = 0`, and `max_steps
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/05/27/inverse-face/docs/10-worklog.md:60:155 - Unknown word (atol) -- equilibrium and `forward_atol = 0`, the first relative
Suggestions: [atob, atom, aton, atop, awol]
exp/2026/06/10/surface-prestrain/data/10-surface-prestrain-forward-table.md:1:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/data/20-surface-prestrain-expression000-table.md:1:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/data/21-surface-prestrain-expression000-prestrain04-table.md:1:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/data/22-surface-metric-penalty-expression000-prestrain10-table.md:1:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/data/30-volume-area-change-diagnostics-summary.json:20:142 - Unknown word (isface) -- expression000-smas1-isface.vtp",
Suggestions: [iface, isaac, issac, infare, isaacs]
exp/2026/06/10/surface-prestrain/data/30-volume-area-change-diagnostics-summary.json:22:18 - Unknown word (isface) -- "surface/n_isface_triangles": 13079,
Suggestions: [iface, isaac, issac, infare, isaacs]
exp/2026/06/10/surface-prestrain/data/30-volume-area-change-diagnostics-summary.json:54:142 - Unknown word (isface) -- expression000-smas1-isface.vtp",
Suggestions: [iface, isaac, issac, infare, isaacs]
exp/2026/06/10/surface-prestrain/data/30-volume-area-change-diagnostics-summary.json:56:18 - Unknown word (isface) -- "surface/n_isface_triangles": 13079,
Suggestions: [iface, isaac, issac, infare, isaacs]
exp/2026/06/10/surface-prestrain/data/30-volume-area-change-diagnostics-summary.json:88:142 - Unknown word (isface) -- expression000-smas1-isface.vtp",
Suggestions: [iface, isaac, issac, infare, isaacs]
exp/2026/06/10/surface-prestrain/data/30-volume-area-change-diagnostics-table.md:1:32 - Unknown word (tris) -- label | tets | IsFace tris | volume rel RMS | volume
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/docs/10-surface-prestrain-forward.md:18:165 - Unknown word (isface) -- TAGS='surface-prestrain,isface,515k,3152k,direct-forward
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/10-surface-prestrain-forward.md:73:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/docs/20-surface-prestrain-expression000.md:17:169 - Unknown word (isface) -- TAGS='surface-prestrain,isface,Expression000,515k,
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/20-surface-prestrain-expression000.md:21:71 - Unknown word (noclamp) -- face-fresh-nu049-smas1-noclamp-super-loose-reg.vtu
Suggestions: [onramp, nodemap, on-ramp, ncap, nola]
exp/2026/06/10/surface-prestrain/docs/20-surface-prestrain-expression000.md:72:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/docs/21-surface-prestrain-expression000-prestrain04.md:16:169 - Unknown word (isface) -- TAGS='surface-prestrain,isface,Expression000,515k,
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/21-surface-prestrain-expression000-prestrain04.md:20:71 - Unknown word (noclamp) -- face-fresh-nu049-smas1-noclamp-super-loose-reg.vtu
Suggestions: [onramp, nodemap, on-ramp, ncap, nola]
exp/2026/06/10/surface-prestrain/docs/21-surface-prestrain-expression000-prestrain04.md:68:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/docs/22-surface-metric-penalty-expression000-prestrain10.md:17:178 - Unknown word (isface) -- TAGS='surface-prestrain,isface,Expression000,515k,
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/22-surface-metric-penalty-expression000-prestrain10.md:21:71 - Unknown word (noclamp) -- face-fresh-nu049-smas1-noclamp-super-loose-reg.vtu
Suggestions: [onramp, nodemap, on-ramp, ncap, nola]
exp/2026/06/10/surface-prestrain/docs/22-surface-metric-penalty-expression000-prestrain10.md:72:36 - Unknown word (tris) -- IsFace points | prestrain tris | previous RMS | prestrain
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/surface-prestrain/docs/30-volume-area-change-diagnostics.md:16:208 - Unknown word (isface) -- volume-change,area-change,isface,515k,3152k,diagnostics
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/30-volume-area-change-diagnostics.md:45:54 - Unknown word (isface) -- expression000-smas1-isface.vtp`
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/30-volume-area-change-diagnostics.md:46:57 - Unknown word (isface) -- expression000-smas100-isface.vtp`
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/30-volume-area-change-diagnostics.md:47:54 - Unknown word (isface) -- expression000-smas1-isface.vtp`
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/docs/30-volume-area-change-diagnostics.md:48:57 - Unknown word (isface) -- expression000-smas100-isface.vtp`
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:152:5 - Unknown word (isface) -- def isface_triangles(
Suggestions: [iface, isaac, issac, infare, isback]
exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:175:5 - Unknown word (isface) -- isface = pv.PolyData(mesh.points
Suggestions: [iface, isaac, issac, infare, isback]
exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:176:5 - Unknown word (isface) -- isface.point_data["vtkOriginalPointI
Suggestions: [iface, isaac, issac, infare, isback]
exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:177:5 - Unknown word (isface) -- isface.point_data[mask_name
Suggestions: [iface, isaac, issac, infare, isback]
exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:178:23 - Unknown word (isface) -- return triangles, isface
Suggestions: [iface, isaac, issac, infare, isback]
exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:342:41 - Unknown word (tris) -- label | tets | IsFace tris | volume rel RMS | volume
Suggestions: [tais, this, tres, très, trie]
exp/2026/06/10/unreachable-inverse-physics/docs/10-real-mesh-area-volume.md:20:73 - Unknown word (isface) -- mesh,diagnostic-vtu,isface,clean" \
Suggestions: [isaac, issac, infare, isaacs, Isaac]
exp/2026/06/10/unreachable-inverse-physics/docs/10-real-mesh-area-volume.md:74:376 - Unknown word (unreachability) -- support a global volume-unreachability explanation for it.
Suggestions: [unreadability, reachability, unreliability]
src/liblaf/apple/inverse/_diff_forward.py:92:9 - Unknown word (rprecondition) -- def rprecondition(self, p_free: Free)
Suggestions: [precondition, preCondition, PRECONDITION, recondition, rpreconditioner]
src/liblaf/apple/inverse/_diff_forward.py:99:21 - Unknown word (rprecondition) -- return self.rprecondition(p_free)
Suggestions: [precondition, preCondition, PRECONDITION, recondition, rpreconditioner]
CSpell: Files checked: 320, skipped: 19, Issues found: 60 in 28 files.
You can skip this misspellings by defining the following .cspell.json file at the root of your repository
Of course, please correct real typos before :)
{
"version": "0.2",
"language": "en",
"ignorePaths": [
"**/node_modules/**",
"**/vscode-extension/**",
"**/.git/**",
"**/.pnpm-lock.json",
".vscode",
"package-lock.json",
"megalinter-reports"
],
"words": [
"Efat",
"Esmas",
"atol",
"bbox",
"cmap",
"isface",
"noclamp",
"rprecondition",
"tris",
"unreachability",
"viridis"
]
}
You can also copy-paste megalinter-reports/LINTER_DEFAULT at the root of your repository
⚠️ COPYPASTE / jscpd - 561 errors
inverse-segement/src/30-inverse.py [138:39 - 242:24]
Clone found (python):
- exp/2025/08/27/inverse/src/20-forward.py [1:1 - 29:42] (28 lines, 244 tokens)
exp/2025/08/27/inverse-segement/src/20-forward.py [1:1 - 29:43]
Clone found (python):
- exp/2025/08/27/inverse/src/20-forward.py [33:40 - 51:24] (18 lines, 191 tokens)
exp/2025/08/27/inverse-segement/src/20-forward.py [33:30 - 51:24]
Clone found (python):
- exp/2025/08/27/inverse/src/10-gen.py [32:5 - 39:24] (7 lines, 85 tokens)
exp/2025/08/27/inverse-segement/src/10-gen.py [46:5 - 53:24]
Clone found (python):
- exp/2025/07/30/phace/wind/main.py [126:5 - 136:14] (10 lines, 144 tokens)
exp/2025/07/30/dynamics/collision/inter-collision/main.py [132:84 - 142:15]
Clone found (python):
- exp/2025/07/30/phace/wind/main.py [139:9 - 152:46] (13 lines, 156 tokens)
exp/2025/07/30/dynamics/collision/inter-collision/main.py [142:9 - 155:46]
Clone found (python):
- exp/2025/07/30/phace/open-mouth/main.py [9:1 - 19:13] (10 lines, 102 tokens)
exp/2025/07/30/phace/wind/main.py [8:1 - 18:12]
Clone found (python):
- exp/2025/07/30/phace/open-mouth/main.py [24:5 - 36:14] (12 lines, 94 tokens)
exp/2025/07/30/dynamics/collision/collision-bunny-bunny/main.py [19:5 - 31:9]
Clone found (python):
- exp/2025/07/30/phace/open-mouth/main.py [25:21 - 55:12] (30 lines, 315 tokens)
exp/2025/07/30/phace/wind/main.py [30:19 - 60:15]
Clone found (python):
- exp/2025/07/30/phace/open-mouth/main.py [95:85 - 105:33] (10 lines, 148 tokens)
exp/2025/07/30/dynamics/collision/inter-collision/main.py [132:84 - 136:38]
Clone found (python):
- exp/2025/07/30/phace/open-mouth/main.py [105:88 - 119:25] (14 lines, 153 tokens)
exp/2025/07/30/phace/wind/main.py [138:9 - 155:23]
Clone found (python):
- exp/2025/07/30/phace/grin/main.py [1:1 - 12:59] (11 lines, 103 tokens)
exp/2025/07/30/phace/wind/main.py [1:1 - 12:60]
Clone found (python):
- exp/2025/07/30/phace/grin/main.py [19:5 - 36:12] (17 lines, 142 tokens)
exp/2025/07/30/phace/open-mouth/main.py [20:5 - 42:12]
Clone found (python):
- exp/2025/07/30/phace/grin/main.py [101:5 - 107:45] (6 lines, 74 tokens)
exp/2025/07/30/dynamics/collision/inter-collision/main.py [132:84 - 138:36]
Clone found (python):
- exp/2025/07/30/phace/dynamics/main.py [1:1 - 14:29] (13 lines, 106 tokens)
exp/2025/07/30/phace/wind/main.py [1:1 - 15:6]
Clone found (python):
- exp/2025/07/30/phace/dynamics/main.py [35:5 - 53:37] (18 lines, 164 tokens)
exp/2025/07/30/phace/wind/main.py [32:5 - 44:44]
Clone found (python):
- exp/2025/07/30/phace/dynamics/main.py [53:37 - 66:12] (13 lines, 146 tokens)
exp/2025/07/30/phace/grin/main.py [44:44 - 56:11]
Clone found (python):
- exp/2025/07/30/phace/dynamics/main.py [90:54 - 97:67] (7 lines, 77 tokens)
exp/2025/07/30/phace/grin/main.py [90:27 - 97:67]
Clone found (python):
- exp/2025/07/30/phace/dynamics/main.py [107:5 - 117:13] (10 lines, 142 tokens)
exp/2025/07/30/dynamics/collision/inter-collision/main.py [132:84 - 111:26]
Clone found (python):
- exp/2025/07/30/phace/dynamics/main.py [118:81 - 126:43] (8 lines, 101 tokens)
exp/2025/07/30/phace/grin/main.py [112:77 - 120:41]
Clone found (python):
- exp/2025/07/30/phace/collide-ball/main.py [9:1 - 18:26] (9 lines, 95 tokens)
exp/2025/07/30/phace/wind/main.py [9:1 - 19:26]
Clone found (python):
- exp/2025/07/30/phace/collide-ball/main.py [12:60 - 35:40] (23 lines, 195 tokens)
exp/2025/07/30/phace/grin/main.py [12:52 - 36:47]
Clone found (python):
- exp/2025/07/30/phace/collide-ball/main.py [35:40 - 42:66] (7 lines, 122 tokens)
exp/2025/07/30/phace/wind/main.py [41:47 - 48:64]
Clone found (python):
- exp/2025/07/30/phace/close-mouth/main.py [1:1 - 22:12] (21 lines, 180 tokens)
exp/2025/07/30/phace/open-mouth/main.py [1:1 - 21:10]
Clone found (python):
- exp/2025/07/30/phace/close-mouth/main.py [29:5 - 57:12] (28 lines, 311 tokens)
exp/2025/07/30/phace/wind/main.py [32:5 - 60:15]
Clone found (python):
- exp/2025/07/30/phace/close-mouth/main.py [101:5 - 140:21] (39 lines, 450 tokens)
exp/2025/07/30/phace/open-mouth/main.py [55:5 - 124:9]
Clone found (python):
- exp/2025/07/30/phace/close-mouth/main.py [140:47 - 165:46] (25 lines, 356 tokens)
exp/2025/07/30/phace/open-mouth/main.py [94:46 - 155:46]
Clone found (python):
- exp/2025/07/30/dynamics/free-falling/main.py [25:21 - 58:8] (33 lines, 358 tokens)
exp/2025/07/30/dynamics/collision/collision-bunny/main.py [24:19 - 57:11]
Clone found (python):
- exp/2025/07/30/dynamics/free-falling/main.py [78:5 - 84:11] (6 lines, 86 tokens)
exp/2025/07/30/dynamics/collision/collision-bunny/main.py [75:5 - 81:11]
Clone found (python):
- exp/2025/07/30/dynamics/free-falling/main.py [137:5 - 151:14] (14 lines, 138 tokens)
exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [69:5 - 83:14]
Clone found (python):
- exp/2025/04/30/fat-muscle/src/20-simulate.py [17:5 - 30:35] (13 lines, 138 tokens)
exp/2025/04/30/human-head/src/10-simulate.py [18:5 - 31:37]
Clone found (python):
- exp/2025/04/30/fat-muscle/src/20-simulate.py [48:43 - 58:61] (10 lines, 136 tokens)
exp/2025/04/30/human-head/src/10-simulate.py [47:56 - 57:63]
Clone found (python):
- exp/2025/04/30/fat-muscle/src/20-simulate.py [59:60 - 72:3] (13 lines, 107 tokens)
exp/2025/04/30/human-head/src/10-simulate.py [58:62 - 71:4]
Clone found (python):
- exp/2025/04/30/cubic/src/10-gen.py [21:54 - 44:35] (23 lines, 196 tokens)
exp/2025/04/30/human-head/src/10-simulate.py [24:76 - 46:40]
Clone found (python):
- exp/2025/04/30/cubic/src/10-gen.py [44:66 - 71:24] (27 lines, 303 tokens)
exp/2025/04/30/fat-muscle/src/20-simulate.py [46:74 - 73:24]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [57:1 - 63:31] (6 lines, 83 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [36:67 - 42:13]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [81:46 - 93:11] (12 lines, 171 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [36:35 - 69:48]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [102:36 - 108:6] (6 lines, 82 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [21:28 - 26:7]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [103:14 - 116:12] (13 lines, 166 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [57:11 - 94:12]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean.py [25:18 - 35:7] (10 lines, 126 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [27:18 - 37:10]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean.py [74:78 - 84:12] (10 lines, 127 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [53:1 - 63:48]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean.py [93:14 - 103:12] (10 lines, 121 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [53:11 - 63:48]
Clone found (python):
- src/liblaf/apple/warp/fem/_stable_neo_hookean.py [116:43 - 150:6] (34 lines, 323 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [135:10 - 169:6]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [1:1 - 28:18] (27 lines, 251 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [1:1 - 28:17]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [29:51 - 39:17] (10 lines, 105 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [29:58 - 39:17]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [39:44 - 60:17] (21 lines, 193 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [39:47 - 60:17]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [62:63 - 84:12] (22 lines, 280 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [62:22 - 63:48]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [83:63 - 103:12] (20 lines, 280 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [83:22 - 63:48]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [102:63 - 110:17] (8 lines, 92 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [102:22 - 110:23]
Clone found (python):
- src/liblaf/apple/warp/fem/_neo_hookean.py [110:17 - 150:6] (40 lines, 380 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [110:23 - 169:6]
Clone found (python):
- src/liblaf/apple/warp/fem/_base.py [189:37 - 196:14] (7 lines, 90 tokens)
src/liblaf/apple/warp/fem/_base.py [166:40 - 173:19]
Clone found (python):
- src/liblaf/apple/warp/fem/_base.py [211:31 - 218:16] (7 lines, 92 tokens)
src/liblaf/apple/warp/fem/_base.py [166:31 - 173:19]
Clone found (python):
- src/liblaf/apple/warp/fem/_base.py [235:36 - 243:22] (8 lines, 108 tokens)
src/liblaf/apple/warp/fem/_base.py [166:40 - 197:19]
Clone found (python):
- src/liblaf/apple/warp/fem/_base.py [266:9 - 272:19] (6 lines, 86 tokens)
src/liblaf/apple/warp/fem/_base.py [167:9 - 173:19]
Clone found (python):
- src/liblaf/apple/warp/fem/_base.py [292:14 - 300:19] (8 lines, 102 tokens)
src/liblaf/apple/warp/fem/_base.py [262:14 - 270:22]
Clone found (python):
- src/liblaf/apple/warp/fem/_base.py [327:9 - 334:19] (7 lines, 103 tokens)
src/liblaf/apple/warp/fem/_base.py [296:9 - 303:19]
Clone found (python):
- src/liblaf/apple/warp/fem/_arap.py [7:33 - 22:7] (15 lines, 106 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean.py [7:41 - 22:7]
Clone found (python):
- src/liblaf/apple/warp/fem/_arap.py [89:53 - 121:6] (32 lines, 288 tokens)
src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [137:55 - 169:6]
Clone found (python):
- exp/2025/07/30/static/stretch.py [12:5 - 19:52] (7 lines, 105 tokens)
exp/2025/07/30/static/random/main.py [19:5 - 25:53]
Clone found (python):
- exp/2025/07/30/static/stretch.py [28:9 - 39:30] (11 lines, 124 tokens)
exp/2025/07/30/static/random/main.py [40:9 - 51:35]
Clone found (python):
- exp/2025/07/30/static/stretch.py [49:1 - 54:10] (5 lines, 83 tokens)
exp/2025/07/30/static/random/main.py [60:44 - 65:10]
Clone found (python):
- exp/2025/07/30/static/stretch.py [67:5 - 77:14] (10 lines, 115 tokens)
exp/2025/07/30/static/random/main.py [73:5 - 83:10]
Clone found (python):
- tests/forward/test_static_simulation.py [77:31 - 85:11] (8 lines, 80 tokens)
exp/2026/05/06/toy/src/10-stretched-cylinder.py [84:43 - 92:17]
Clone found (python):
- benches/test_aggregation.py [115:9 - 129:11] (14 lines, 161 tokens)
benches/test_aggregation.py [68:88 - 80:92]
Clone found (python):
- benches/bench_pncg_branching_backends.py [180:20 - 192:8] (12 lines, 87 tokens)
benches/bench_pncg_branching_backends.py [141:14 - 153:9]
Clone found (python):
- benches/bench_pncg_branching_backends.py [347:9 - 357:11] (10 lines, 94 tokens)
benches/bench_pncg_branching_backends.py [279:9 - 289:13]
Clone found (python):
- benches/bench_pncg_branching_backends.py [459:40 - 481:6] (22 lines, 172 tokens)
benches/bench_pncg_branching_backends.py [413:34 - 435:18]
Clone found (python):
- benches/bench_pncg_branching_backends.py [649:25 - 663:22] (14 lines, 159 tokens)
benches/bench_pncg_branching_backends.py [475:23 - 489:25]
┌────────┬────────────────┬─────────────┬──────────────┬──────────────┬──────────────────┬───────────────────┐
│ Format │ Files analyzed │ Total lines │ Total tokens │ Clones found │ Duplicated lines │ Duplicated tokens │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ python │ 205 │ 37528 │ 386317 │ 561 │ 15886 (42.33%) │ 169514 (43.88%) │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ csv │ 9 │ 155 │ 11337 │ 0 │ 0 (0%) │ 0 (0%) │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ bash │ 2 │ 45 │ 136 │ 0 │ 0 (0%) │ 0 (0%) │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ toml │ 8 │ 933 │ 4016 │ 0 │ 0 (0%) │ 0 (0%) │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ Total: │ 224 │ 38661 │ 401806 │ 561 │ 15886 (41.09%) │ 169514 (42.19%) │
└────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘
Found 561 clones.
HTML report saved to megalinter-reports/copy-paste/html/
ERROR: jscpd found too many duplicates (41.09%) over threshold (0%)
Error: ERROR: jscpd found too many duplicates (41.09%) over threshold (0%)
at ThresholdReporter.report (/node-deps/node_modules/@jscpd/finder/dist/index.js:615:13)
at /node-deps/node_modules/@jscpd/finder/dist/index.js:109:18
at Array.forEach (<anonymous>)
at /node-deps/node_modules/@jscpd/finder/dist/index.js:108:22
at async /node-deps/node_modules/jscpd/dist/bin/jscpd.js:9:5
(Truncated to last 13333 characters out of 115134)
⚠️ PYTHON / ruff - 64 errors
ld_mesh()
|
PLR0915 Too many statements (57 > 50)
--> exp/2026/04/18/2d-demo/src/10-simulation.py:320:5
|
320 | def main():
| ^^^^
321 | # --- Build mesh & initialize state ---
322 | f2v, is_fascia, elem_mu, elem_lam = build_mesh()
|
FBT003 Boolean positional value in function call
--> exp/2026/04/18/2d-demo/src/10-simulation.py:431:37
|
429 | y_pos = 12
430 | for fnt, text, color in hud_lines:
431 | surf = fnt.render(text, True, color)
| ^^^^
432 | screen.blit(surf, (15, y_pos))
433 | y_pos += 28
|
B007 Loop control variable `step` not used within loop body
--> exp/2026/04/18/2d-demo/src/30-simulation-stable-neo-hookean-self-collision.py:829:9
|
827 | contact_points = np.empty((0, 2), dtype=pos.dtype)
828 |
829 | for step in range(SUBSTEPS):
| ^^^^
830 | substep_contacts, substep_points = substep(
831 | pos,
|
help: Rename unused `step` to `_step`
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/10-surface-prestrain-forward.py:248:49
|
246 | output = self.base.grad(state)
247 | with torch.enable_grad():
248 | u = state.u.detach().requires_grad_(True)
| ^^^^
249 | energy = self.surface.energy(u)
250 | (grad,) = torch.autograd.grad(energy, u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/10-surface-prestrain-forward.py:259:49
|
257 | output = self.base.hess_prod(state, p)
258 | with torch.enable_grad():
259 | u = state.u.detach().requires_grad_(True)
| ^^^^
260 | p_local = p.detach()
261 | energy = self.surface.energy(u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/10-surface-prestrain-forward.py:273:49
|
271 | def hess_prod_surface(self, state: Any, p: Full) -> Full:
272 | with torch.enable_grad():
273 | u = state.u.detach().requires_grad_(True)
| ^^^^
274 | p_local = p.detach()
275 | energy = self.surface.energy(u)
|
PERF401 Use `list.extend` to create a transformed list
--> exp/2026/06/10/surface-prestrain/src/10-surface-prestrain-forward.py:890:9
|
888 | ]
889 | for row in rows:
890 | / lines.append(
891 | | "| "
892 | | + " | ".join(
893 | | [
894 | | str(row["case"]),
895 | | format_float(row["target/n_points"]),
896 | | format_float(row["surface/n_prestrain_triangles"]),
897 | | format_float(row["previous/target/error_rms"]),
898 | | format_float(row["prestrain/target/error_rms"]),
899 | | format_float(row["delta/target_error_rms"]),
900 | | format_float(row["previous/surface/displacement_laplacian_rms"]),
901 | | format_float(row["prestrain/surface/displacement_laplacian_rms"]),
902 | | format_float(row["delta/surface_displacement_laplacian_rms"]),
903 | | format_float(row["forward/steps"]),
904 | | format_float(row["forward/success"]),
905 | | ]
906 | | )
907 | | + " |"
908 | | )
| |_________^
909 | path.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
help: Replace for loop with list.extend
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/20-surface-prestrain-expression000.py:252:49
|
250 | output = self.base.grad(state)
251 | with torch.enable_grad():
252 | u = state.u.detach().requires_grad_(True)
| ^^^^
253 | energy = self.surface.energy(u)
254 | (grad,) = torch.autograd.grad(energy, u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/20-surface-prestrain-expression000.py:263:49
|
261 | output = self.base.hess_prod(state, p)
262 | with torch.enable_grad():
263 | u = state.u.detach().requires_grad_(True)
| ^^^^
264 | p_local = p.detach()
265 | energy = self.surface.energy(u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/20-surface-prestrain-expression000.py:277:49
|
275 | def hess_prod_surface(self, state: Any, p: Full) -> Full:
276 | with torch.enable_grad():
277 | u = state.u.detach().requires_grad_(True)
| ^^^^
278 | p_local = p.detach()
279 | energy = self.surface.energy(u)
|
PERF401 Use `list.extend` to create a transformed list
--> exp/2026/06/10/surface-prestrain/src/20-surface-prestrain-expression000.py:894:9
|
892 | ]
893 | for row in rows:
894 | / lines.append(
895 | | "| "
896 | | + " | ".join(
897 | | [
898 | | str(row["case"]),
899 | | format_float(row["target/n_points"]),
900 | | format_float(row["surface/n_prestrain_triangles"]),
901 | | format_float(row["previous/target/error_rms"]),
902 | | format_float(row["prestrain/target/error_rms"]),
903 | | format_float(row["delta/target_error_rms"]),
904 | | format_float(row["previous/surface/displacement_laplacian_rms"]),
905 | | format_float(row["prestrain/surface/displacement_laplacian_rms"]),
906 | | format_float(row["delta/surface_displacement_laplacian_rms"]),
907 | | format_float(row["forward/steps"]),
908 | | format_float(row["forward/success"]),
909 | | ]
910 | | )
911 | | + " |"
912 | | )
| |_________^
913 | path.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
help: Replace for loop with list.extend
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/21-surface-prestrain-expression000-prestrain04.py:256:49
|
254 | output = self.base.grad(state)
255 | with torch.enable_grad():
256 | u = state.u.detach().requires_grad_(True)
| ^^^^
257 | energy = self.surface.energy(u)
258 | (grad,) = torch.autograd.grad(energy, u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/21-surface-prestrain-expression000-prestrain04.py:267:49
|
265 | output = self.base.hess_prod(state, p)
266 | with torch.enable_grad():
267 | u = state.u.detach().requires_grad_(True)
| ^^^^
268 | p_local = p.detach()
269 | energy = self.surface.energy(u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/21-surface-prestrain-expression000-prestrain04.py:281:49
|
279 | def hess_prod_surface(self, state: Any, p: Full) -> Full:
280 | with torch.enable_grad():
281 | u = state.u.detach().requires_grad_(True)
| ^^^^
282 | p_local = p.detach()
283 | energy = self.surface.energy(u)
|
PERF401 Use `list.extend` to create a transformed list
--> exp/2026/06/10/surface-prestrain/src/21-surface-prestrain-expression000-prestrain04.py:902:9
|
900 | ]
901 | for row in rows:
902 | / lines.append(
903 | | "| "
904 | | + " | ".join(
905 | | [
906 | | str(row["case"]),
907 | | format_float(row["target/n_points"]),
908 | | format_float(row["surface/n_prestrain_triangles"]),
909 | | format_float(row["previous/target/error_rms"]),
910 | | format_float(row["prestrain/target/error_rms"]),
911 | | format_float(row["delta/target_error_rms"]),
912 | | format_float(row["previous/surface/displacement_laplacian_rms"]),
913 | | format_float(row["prestrain/surface/displacement_laplacian_rms"]),
914 | | format_float(row["delta/surface_displacement_laplacian_rms"]),
915 | | format_float(row["forward/steps"]),
916 | | format_float(row["forward/success"]),
917 | | ]
918 | | )
919 | | + " |"
920 | | )
| |_________^
921 | path.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
help: Replace for loop with list.extend
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/22-surface-metric-penalty-expression000-prestrain10.py:284:49
|
282 | output = self.base.grad(state)
283 | with torch.enable_grad():
284 | u = state.u.detach().requires_grad_(True)
| ^^^^
285 | energy = self.surface.energy(u)
286 | (grad,) = torch.autograd.grad(energy, u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/22-surface-metric-penalty-expression000-prestrain10.py:295:49
|
293 | output = self.base.hess_prod(state, p)
294 | with torch.enable_grad():
295 | u = state.u.detach().requires_grad_(True)
| ^^^^
296 | p_local = p.detach()
297 | energy = self.surface.energy(u)
|
FBT003 Boolean positional value in function call
--> exp/2026/06/10/surface-prestrain/src/22-surface-metric-penalty-expression000-prestrain10.py:309:49
|
307 | def hess_prod_surface(self, state: Any, p: Full) -> Full:
308 | with torch.enable_grad():
309 | u = state.u.detach().requires_grad_(True)
| ^^^^
310 | p_local = p.detach()
311 | energy = self.surface.energy(u)
|
PERF401 Use `list.extend` to create a transformed list
--> exp/2026/06/10/surface-prestrain/src/22-surface-metric-penalty-expression000-prestrain10.py:927:9
|
925 | ]
926 | for row in rows:
927 | / lines.append(
928 | | "| "
929 | | + " | ".join(
930 | | [
931 | | str(row["case"]),
932 | | format_float(row["target/n_points"]),
933 | | format_float(row["surface/n_prestrain_triangles"]),
934 | | format_float(row["previous/target/error_rms"]),
935 | | format_float(row["prestrain/target/error_rms"]),
936 | | format_float(row["delta/target_error_rms"]),
937 | | format_float(row["previous/surface/displacement_laplacian_rms"]),
938 | | format_float(row["prestrain/surface/displacement_laplacian_rms"]),
939 | | format_float(row["delta/surface_displacement_laplacian_rms"]),
940 | | format_float(row["forward/steps"]),
941 | | format_float(row["forward/success"]),
942 | | ]
943 | | )
944 | | + " |"
945 | | )
| |_________^
946 | path.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
help: Replace for loop with list.extend
PERF401 Use `list.extend` to create a transformed list
--> exp/2026/06/10/surface-prestrain/src/30-volume-area-change-diagnostics.py:346:9
|
344 | ]
345 | for row in rows:
346 | / lines.append(
347 | | "| "
348 | | + " | ".join(
349 | | [
350 | | str(row["case"]),
351 | | str(row["label"]),
352 | | format_float(row["mesh/n_tets"]),
353 | | format_float(row["surface/n_isface_triangles"]),
354 | | format_float(row["volume/rms"]),
355 | | format_float(row["volume/total_rel_change"]),
356 | | format_float(row["area/rms"]),
357 | | format_float(row["area/total_rel_change"]),
358 | | format_float(row["volume/n_inverted"]),
359 | | ]
360 | | )
361 | | + " |"
362 | | )
| |_________^
363 | path.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
help: Replace for loop with list.extend
Found 64 errors.
No fixes available (13 hidden fixes can be enabled with the `--unsafe-fixes` option).
(Truncated to last 13333 characters out of 31100)
Notices
📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)
See detailed reports in MegaLinter artifacts

Show us your support by starring ⭐ the repository
325da41 to
ea5bfa5
Compare
e5c2463 to
7aba303
Compare
2465dfb to
a577cf6
Compare
for more information, see https://pre-commit.ci
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
🔧 This Pull Request updates lock files to use the latest dependency versions.
Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.