Skip to content

chore(deps): lock file maintenance#98

Open
renovate[bot] wants to merge 2 commits into
mainfrom
renovate/lock-file-maintenance
Open

chore(deps): lock file maintenance#98
renovate[bot] wants to merge 2 commits into
mainfrom
renovate/lock-file-maintenance

Conversation

@renovate

@renovate renovate Bot commented Mar 30, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Update Change
lockFileMaintenance All locks refreshed

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)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

renovate-approve[bot]
renovate-approve Bot previously approved these changes Mar 30, 2026
@renovate
renovate Bot requested a review from liblaf March 30, 2026 04:45
@renovate
renovate Bot force-pushed the renovate/lock-file-maintenance branch from b8e04d5 to 6571406 Compare May 23, 2026 07:12
renovate-approve[bot]
renovate-approve Bot previously approved these changes May 23, 2026
@liblaf-mega-linter

liblaf-mega-linter Bot commented May 23, 2026

Copy link
Copy Markdown

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ BASH shellcheck 2 0 0 0.32s
✅ BASH shfmt 2 0 0 0 0.62s
⚠️ COPYPASTE jscpd yes 642 no 7.72s
⚠️ JSON jsonlint 41 1 0 0.66s
✅ JSON prettier 41 28 0 0 2.14s
✅ JSON v8r 41 0 0 7.48s
✅ MARKDOWN rumdl 59 0 0 0 0.86s
⚠️ PYTHON ruff yes yes 64 no 2.03s
✅ PYTHON ruff-format yes yes no no 0.36s
✅ REPOSITORY git_diff yes no no 0.7s
⚠️ SPELL cspell 339 60 0 8.14s

Detailed Issues

⚠️ SPELL / cspell - 60 errors
(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

(Truncated to last 10000 characters out of 13107)
⚠️ COPYPASTE / jscpd - 642 errors
s, 93 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [115:56 - 126:4]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/10-real-mesh-area-volume.py [134:5 - 141:7] (8 lines, 77 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [243:5 - 250:10]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/10-real-mesh-area-volume.py [141:5 - 152:4] (12 lines, 96 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/41-area-change-surfaces.py [79:5 - 90:4]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/10-real-mesh-area-volume.py [180:45 - 190:4] (11 lines, 94 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/41-area-change-surfaces.py [61:36 - 71:4]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/10-real-mesh-area-volume.py [466:35 - 477:65] (12 lines, 68 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [837:68 - 848:65]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [278:57 - 285:20] (8 lines, 60 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [216:37 - 222:20]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [830:1 - 849:14] (20 lines, 182 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/30-toy-target-magnitude-sweep.py [120:1 - 139:14]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [830:1 - 849:14] (20 lines, 182 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [523:1 - 542:14]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [831:26 - 849:14] (19 lines, 154 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [315:17 - 333:14]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [841:34 - 850:251] (10 lines, 52 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/30-toy-target-magnitude-sweep.py [131:34 - 140:204]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/20-toy-unreachable-inverse.py [900:5 - 913:24] (14 lines, 107 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [366:10 - 379:24]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/30-toy-target-magnitude-sweep.py [15:1 - 32:26] (18 lines, 98 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/42-toy-volume-field-backfill.py [15:1 - 32:26]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/30-toy-target-magnitude-sweep.py [17:1 - 32:26] (16 lines, 94 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [19:1 - 34:26]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [17:1 - 34:26] (18 lines, 100 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [18:1 - 35:26]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [87:1 - 95:31] (9 lines, 87 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [348:1 - 353:68]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [96:9 - 110:4] (15 lines, 96 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [353:68 - 367:4]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/40-toy-forward-activation.py [124:65 - 133:37] (10 lines, 56 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [380:72 - 387:70]
Clone found (python)
 - exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [321:25 - 329:55] (9 lines, 67 tokens)
   exp/2026/06/10/unreachable-inverse-physics/src/50-toy-tetwild-experiments.py [438:30 - 446:55]
Clone found (python)
 - src/liblaf/apple/warp/fem/_arap.py [7:33 - 21:74] (15 lines, 63 tokens)
   src/liblaf/apple/warp/fem/_neo_hookean.py [7:41 - 21:74]
Clone found (python)
 - src/liblaf/apple/warp/fem/_arap.py [89:53 - 121:6] (33 lines, 187 tokens)
   src/liblaf/apple/warp/fem/_neo_hookean.py [118:55 - 150:6]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [166:40 - 172:70] (7 lines, 56 tokens)
   src/liblaf/apple/warp/fem/_base.py [189:37 - 195:70]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [166:31 - 172:70] (7 lines, 58 tokens)
   src/liblaf/apple/warp/fem/_base.py [211:31 - 217:70]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [166:40 - 173:54] (8 lines, 67 tokens)
   src/liblaf/apple/warp/fem/_base.py [235:36 - 242:71]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [167:9 - 172:70] (6 lines, 54 tokens)
   src/liblaf/apple/warp/fem/_base.py [266:9 - 271:70]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [191:13 - 197:19] (7 lines, 60 tokens)
   src/liblaf/apple/warp/fem/_base.py [237:13 - 243:22]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [262:14 - 269:67] (8 lines, 67 tokens)
   src/liblaf/apple/warp/fem/_base.py [292:14 - 299:67]
Clone found (python)
 - src/liblaf/apple/warp/fem/_base.py [296:9 - 302:70] (7 lines, 65 tokens)
   src/liblaf/apple/warp/fem/_base.py [327:9 - 333:70]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [1:1 - 28:15] (28 lines, 152 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [1:1 - 28:15]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [29:51 - 39:15] (11 lines, 66 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [29:58 - 39:15]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [39:44 - 60:15] (22 lines, 114 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [39:47 - 60:15]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [53:1 - 62:70] (10 lines, 96 tokens)
   src/liblaf/apple/warp/fem/_neo_hookean.py [74:78 - 83:70]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [53:11 - 62:70] (10 lines, 92 tokens)
   src/liblaf/apple/warp/fem/_neo_hookean.py [93:14 - 102:70]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [62:63 - 83:21] (22 lines, 150 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [62:22 - 83:29]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [83:63 - 102:21] (20 lines, 152 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [83:22 - 102:29]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [102:63 - 110:6] (9 lines, 55 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [102:22 - 110:6]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [110:17 - 150:6] (41 lines, 256 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean.py [110:23 - 150:6]
Clone found (python)
 - src/liblaf/apple/warp/fem/_neo_hookean.py [116:43 - 150:6] (35 lines, 216 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [135:10 - 169:6]
Clone found (python)
 - src/liblaf/apple/warp/fem/_stable_neo_hookean.py [25:18 - 34:78] (10 lines, 83 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [27:18 - 36:78]
Clone found (python)
 - src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [21:28 - 26:7] (6 lines, 51 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [102:36 - 108:6]
Clone found (python)
 - src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [36:67 - 41:28] (6 lines, 52 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [57:1 - 62:28]
Clone found (python)
 - src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [36:35 - 45:18] (10 lines, 104 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [81:46 - 92:29]
Clone found (python)
 - src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [57:11 - 70:26] (14 lines, 98 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [103:14 - 115:35]
Clone found (python)
 - src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [86:14 - 94:12] (9 lines, 55 tokens)
   src/liblaf/apple/warp/fem/_stable_neo_hookean_active.py [108:14 - 116:12]
┌────────┬────────────────┬─────────────┬──────────────┬──────────────┬──────────────────┬───────────────────┐
│ Format │ Files analyzed │ Total lines │ Total tokens │ Clones found │ Duplicated lines │ Duplicated tokens │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ bash   │ 1              │ 38          │ 74           │ 0            │ 0 (0.00%)        │ 0 (0.00%)         │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ csv    │ 8              │ 160         │ 20267        │ 0            │ 0 (0.00%)        │ 0 (0.00%)         │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ python │ 189            │ 44616       │ 301002       │ 642          │ 17030 (38.17%)   │ 122198 (40.60%)   │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ toml   │ 5              │ 919         │ 2340         │ 0            │ 0 (0.00%)        │ 0 (0.00%)         │
├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ Total: │ 203            │ 45733       │ 323683       │ 642          │ 17030 (37.24%)   │ 122198 (37.75%)   │
└────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘
Found 642 clones.
HTML report saved to megalinter-reports/copy-paste/jscpd-report.html
ERROR: jscpd found too many duplicates (37.2%) over threshold (0.0%)
time: 1.46s

(Truncated to last 10000 characters out of 128659)
⚠️ JSON / jsonlint - 1 error
File: exp/2026/01/28/smas/data/21-forward-bottom-dirichlet-stable-neo-hookean-hessian.json
Parse error on line 6, column 22:
...   "best_decrease": Infinity,    "relat...
-----------------------^
No value found for key "best_decrease"
⚠️ PYTHON / ruff - 64 errors
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 10000 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

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@renovate
renovate Bot force-pushed the renovate/lock-file-maintenance branch 2 times, most recently from 325da41 to ea5bfa5 Compare May 31, 2026 12:08
@renovate
renovate Bot force-pushed the renovate/lock-file-maintenance branch 3 times, most recently from e5c2463 to 7aba303 Compare June 11, 2026 11:12
@renovate
renovate Bot force-pushed the renovate/lock-file-maintenance branch from 2465dfb to a577cf6 Compare June 16, 2026 18:51
@renovate
renovate Bot force-pushed the renovate/lock-file-maintenance branch from e3e4919 to f07f5dd Compare July 20, 2026 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant