- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 0
chore(pre-commit.ci): pre-commit autoupdate #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Open
      
      
            pre-commit-ci
  wants to merge
  1
  commit into
  main
  
    
      
        
          
  
    
      Choose a base branch
      
     
    
      
        
      
      
        
          
          
        
        
          
            
              
              
              
  
           
        
        
          
            
              
              
           
        
       
     
  
        
          
            
          
            
          
        
       
    
      
from
pre-commit-ci-update-config
  
      
      
   
  
    
  
  
  
 
  
      
    base: main
Could not load branches
            
              
  
    Branch not found: {{ refName }}
  
            
                
      Loading
              
            Could not load tags
            
            
              Nothing to show
            
              
  
            
                
      Loading
              
            Are you sure you want to change the base?
            Some commits from the old base branch may be removed from the timeline,
            and old review comments may become outdated.
          
          Conversation
  
    
      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
    
  
  
    
    | ✅ | 
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time | 
|---|---|---|---|---|---|---|
| ✅ BASH | shellcheck | 1 | 0 | 0 | 0.3s | |
| ✅ BASH | shfmt | 1 | 0 | 0 | 0 | 0.52s | 
| jscpd | yes | 198 | no | 7.1s | ||
| jsonlint | 8 | 1 | 0 | 0.14s | ||
| ✅ JSON | prettier | 8 | 0 | 0 | 0 | 1.07s | 
| ✅ JSON | v8r | 8 | 0 | 0 | 4.94s | |
| ruff | yes | yes | 1481 | no | 16.42s | |
| ✅ SPELL | cspell | 226 | 0 | 0 | 6.18s | |
| ✅ YAML | prettier | 4 | 0 | 0 | 0 | 0.79s | 
| ✅ YAML | v8r | 4 | 0 | 0 | 3.7s | |
| ✅ YAML | yamllint | 4 | 0 | 0 | 0.27s | 
Detailed Issues
⚠️  COPYPASTE / jscpd - 198 errors
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/phace/func.py [98:6 - 104:17] (6 lines, 85 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/phace/func.py [71:6 - 76:17]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/arap_active/_main.py [1:1 - 15:11] (14 lines, 119 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/phace/_main.py [1:1 - 15:6]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/arap_active/_main.py [15:11 - 39:3] (24 lines, 227 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/phace/_main.py [15:6 - 39:16]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/arap/func.py [43:5 - 54:5] (11 lines, 134 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/arap_active/func.py [49:6 - 60:6]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/arap/func.py [57:5 - 68:5] (11 lines, 137 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/arap_active/func.py [63:6 - 74:6]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/arap/_main.py [1:1 - 11:5] (10 lines, 100 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/phace/_main.py [1:1 - 9:2]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/arap/_main.py [23:5 - 40:2] (17 lines, 167 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/phace/_main.py [16:5 - 33:2]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [83:11 - 92:5] (9 lines, 99 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [58:11 - 67:7]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [92:5 - 103:4] (11 lines, 162 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [67:7 - 78:7]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [113:17 - 133:10] (20 lines, 262 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [58:11 - 78:7]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [154:2 - 169:3] (15 lines, 217 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [62:2 - 77:12]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [184:17 - 210:10] (26 lines, 359 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [149:17 - 175:10]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [220:19 - 229:4] (9 lines, 90 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [58:11 - 67:7]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [230:4 - 241:4] (11 lines, 171 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [92:7 - 78:7]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [252:25 - 261:4] (9 lines, 90 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [58:11 - 67:7]
Clone found (python):
 - src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [262:10 - 274:9] (12 lines, 188 tokens)
   src/liblaf/apple/warp/sim/energy/elastic/_elastic.py [92:7 - 104:4]
Clone found (python):
 - src/liblaf/apple/jax/sim/energy/elastic/_phace_active.py [6:1 - 13:5] (7 lines, 78 tokens)
   src/liblaf/apple/jax/sim/energy/elastic/_phace_static.py [3:1 - 12:6]
Clone found (python):
 - src/liblaf/apple/jax/sim/energy/elastic/_phace_active.py [40:9 - 45:2] (5 lines, 129 tokens)
   src/liblaf/apple/jax/sim/energy/elastic/_phace_static.py [29:9 - 34:2]
Clone found (python):
 - src/liblaf/apple/jax/sim/energy/elastic/_arap_active.py [1:1 - 19:11] (18 lines, 145 tokens)
   src/liblaf/apple/jax/sim/energy/elastic/_phace_active.py [1:1 - 19:12]
Clone found (python):
 - src/liblaf/apple/jax/sim/energy/elastic/_arap_active.py [27:13 - 37:3] (10 lines, 100 tokens)
   src/liblaf/apple/jax/sim/energy/elastic/_phace_active.py [30:9 - 40:8]
Clone found (python):
 - src/liblaf/apple/jax/sim/energy/elastic/_arap_active.py [42:5 - 56:7] (14 lines, 200 tokens)
   src/liblaf/apple/jax/sim/energy/elastic/_phace_active.py [50:5 - 64:7]
Clone found (python):
 - src/liblaf/apple/jax/sim/energy/elastic/_arap.py [3:1 - 13:5] (10 lines, 86 tokens)
   src/liblaf/apple/jax/sim/energy/elastic/_phace_static.py [3:1 - 13:12]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny-bunny/main.py [1:1 - 14:5] (13 lines, 115 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [1:1 - 14:4]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny-bunny/main.py [22:5 - 84:78] (62 lines, 768 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [22:5 - 84:8]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny-bunny/main.py [87:5 - 114:2] (27 lines, 319 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [84:4 - 111:2]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [21:5 - 35:7] (14 lines, 116 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-bunny/main.py [17:5 - 31:4]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [58:1 - 67:4] (9 lines, 151 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [31:1 - 40:3]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [67:3 - 77:9] (10 lines, 124 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [40:3 - 49:6]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [81:9 - 88:5] (7 lines, 101 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [52:9 - 59:7]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [90:4 - 100:5] (10 lines, 128 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [58:2 - 68:4]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [100:2 - 116:4] (16 lines, 181 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [68:2 - 84:10]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-bunny/main.py [116:6 - 132:5] (16 lines, 200 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [87:5 - 103:13]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-box/main.py [1:1 - 50:5] (49 lines, 490 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny/main.py [1:1 - 50:3]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-box/main.py [52:9 - 79:28] (27 lines, 359 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny/main.py [54:2 - 81:3]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-box/main.py [78:9 - 96:75] (18 lines, 224 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny-sphere/main.py [49:10 - 96:8]
Clone found (python):
 - exp/2025/07/30/dynamics/collision/collision-box/main.py [104:5 - 142:10] (38 lines, 481 tokens)
   exp/2025/07/30/dynamics/collision/collision-bunny/main.py [97:8 - 105:12]
Clone found (python):
 - tests/warp/sim/energy/elastic/utils/test_hess_diag.py [9:10 - 30:15] (21 lines, 241 tokens)
   tests/warp/sim/energy/elastic/utils/test_hess_quad.py [10:6 - 31:11]
Clone found (python):
 - tests/warp/sim/energy/elastic/utils/test_hess_diag.py [87:5 - 93:13] (6 lines, 71 tokens)
   tests/warp/sim/energy/elastic/utils/test_hess_quad.py [97:5 - 103:13]
Clone found (python):
 - tests/warp/sim/energy/elastic/utils/test_hess_diag.py [94:5 - 106:11] (12 lines, 239 tokens)
   tests/warp/sim/energy/elastic/utils/test_hess_quad.py [105:5 - 117:11]
Clone found (python):
 - src/liblaf/apple/jax/sim/model/_model.py [40:10 - 48:10] (8 lines, 102 tokens)
   src/liblaf/apple/jax/sim/model/_model.py [22:4 - 30:4]
Clone found (python):
 - src/liblaf/apple/jax/sim/model/_model.py [58:2 - 66:10] (8 lines, 97 tokens)
   src/liblaf/apple/jax/sim/model/_model.py [22:2 - 30:4]
Clone found (python):
 - src/liblaf/apple/jax/optim/_minimize/_minimizer.py [77:5 - 85:2] (8 lines, 91 tokens)
   src/liblaf/apple/jax/optim/_minimize/_scipy.py [21:5 - 30:8]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [416:18 - 422:9] (6 lines, 109 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [360:16 - 366:16]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [429:15 - 434:12] (5 lines, 88 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [360:16 - 365:14]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [1:1 - 37:7] (36 lines, 317 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [1:1 - 37:10]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [37:29 - 123:9] (86 lines, 799 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [37:31 - 123:8]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [124:10 - 138:16] (14 lines, 101 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [126:11 - 140:8]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [141:5 - 211:7] (70 lines, 741 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [145:5 - 215:6]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [212:10 - 322:9] (110 lines, 968 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [218:11 - 328:8]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [333:10 - 353:2] (20 lines, 292 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [349:11 - 369:4]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [353:2 - 368:11] (15 lines, 193 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [369:2 - 384:4]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [368:2 - 385:71] (17 lines, 189 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [384:2 - 401:6]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [396:9 - 457:2] (61 lines, 662 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [464:13 - 525:2]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [457:2 - 488:2] (31 lines, 134 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [525:2 - 556:2]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/37-inverse-quadratic.py [1:1 - 37:34] (36 lines, 319 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [1:1 - 37:29]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/37-inverse-quadratic.py [37:34 - 401:5] (364 lines, 3645 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [37:31 - 416:18]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/37-inverse-quadratic.py [396:13 - 458:2] (62 lines, 677 tokens)
   exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [395:13 - 525:2]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/37-inverse-quadratic.py [458:2 - 489:2] (31 lines, 134 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [525:2 - 556:2]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/36-inverse-abs.py [1:1 - 37:28] (36 lines, 319 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [1:1 - 37:29]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/36-inverse-abs.py [37:28 - 382:9] (345 lines, 3480 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [37:31 - 398:42]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/36-inverse-abs.py [392:13 - 488:2] (96 lines, 821 tokens)
   exp/2025/09/24/inverse-grin/src/37-inverse-quadratic.py [393:13 - 556:2]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [1:1 - 37:24] (36 lines, 319 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [1:1 - 37:29]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [37:24 - 138:4] (101 lines, 914 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [37:31 - 138:4]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [141:5 - 265:47] (124 lines, 1184 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [145:5 - 271:44]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [269:17 - 282:25] (13 lines, 126 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [279:17 - 292:22]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [284:35 - 378:15] (94 lines, 1138 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [294:32 - 398:42]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [385:5 - 439:46] (54 lines, 595 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [469:5 - 523:56]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/35-inverse-small-reg.py [443:5 - 451:8] (8 lines, 96 tokens)
   exp/2025/09/24/inverse-grin/src/38-inverse-cbrt.py [456:5 - 464:32]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/34-inverse-no-reg.py [1:1 - 37:24] (36 lines, 319 tokens)
   exp/2025/09/24/inverse-grin/src/39-inverse-sparse.py [1:1 - 37:29]
Clone found (python):
 - exp/2025/09/24/inverse-grin/src/34-i
(Truncated to 13333 characters out of 36839)
⚠️  JSON / jsonlint - 1 error
File: .vscode/settings.json
Parse error on line 27, column 5:
....customTags": [    // ref: <https://squ...
----------------------^
Unexpected token "/"
⚠️  PYTHON / ruff - 1481 errors
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/cubic/src/10-gen.py:54:29
   |
53 |     def callback(intermediate_result: apple.OptimizeResult) -> None:
54 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
   |                             ^^^^
55 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
56 |         u: Float[jax.Array, "P 3"] = u[physics.objects["box"].dof_id]
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/cubic/src/10-gen.py:55:29
   |
53 |     def callback(intermediate_result: apple.OptimizeResult) -> None:
54 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
55 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
   |                             ^^^^
56 |         u: Float[jax.Array, "P 3"] = u[physics.objects["box"].dof_id]
57 |         result: pv.UnstructuredGrid = physics.objects["box"].geometry
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/cubic/src/10-gen.py:56:29
   |
54 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
55 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
56 |         u: Float[jax.Array, "P 3"] = u[physics.objects["box"].dof_id]
   |                             ^^^^^
57 |         result: pv.UnstructuredGrid = physics.objects["box"].geometry
58 |         result.point_data["solution"] = np.asarray(u)
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/fat-muscle/src/10-gen.py:32:40
   |
30 |     ):
31 |         cell: pv.Cell
32 |         barycentric: Float[np.ndarray, "N 3"] = melon.sample_barycentric_coords(
   |                                        ^^^^^
33 |             (cfg.n_samples, 4)
34 |         )
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/fat-muscle/src/10-gen.py:35:36
   |
33 |             (cfg.n_samples, 4)
34 |         )
35 |         samples: Float[np.ndarray, "N 3"] = melon.barycentric_to_points(
   |                                    ^^^^^
36 |             einops.repeat(cell.points, "B D -> N B D", N=cfg.n_samples), barycentric
37 |         )
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/fat-muscle/src/10-gen.py:38:33
   |
36 |             einops.repeat(cell.points, "B D -> N B D", N=cfg.n_samples), barycentric
37 |         )
38 |         is_in: Bool[np.ndarray, " N"] = melon.triangle.contains(muscle, samples)
   |                                 ^^^^
39 |         tetmesh.cell_data["muscle-fraction"][cid] = (
40 |             np.count_nonzero(is_in) / cfg.n_samples
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/fat-muscle/src/11-inspect-volume.py:24:40
   |
23 |     tetmesh = tetmesh.compute_cell_sizes()
24 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
   |                                        ^^^^
25 |     volume: Float[np.ndarray, " C"] = tetmesh.cell_data["Volume"]
26 |     occupied_volume: Float[np.ndarray, " C"] = np.sum(volume[muscle_fraction > 1e-9])
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/fat-muscle/src/11-inspect-volume.py:25:31
   |
23 |     tetmesh = tetmesh.compute_cell_sizes()
24 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
25 |     volume: Float[np.ndarray, " C"] = tetmesh.cell_data["Volume"]
   |                               ^^^^
26 |     occupied_volume: Float[np.ndarray, " C"] = np.sum(volume[muscle_fraction > 1e-9])
27 |     ic(occupied_volume / tetmesh.volume)
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/fat-muscle/src/11-inspect-volume.py:26:40
   |
24 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
25 |     volume: Float[np.ndarray, " C"] = tetmesh.cell_data["Volume"]
26 |     occupied_volume: Float[np.ndarray, " C"] = np.sum(volume[muscle_fraction > 1e-9])
   |                                        ^^^^
27 |     ic(occupied_volume / tetmesh.volume)
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/fat-muscle/src/20-simulate.py:56:29
   |
55 |     def callback(intermediate_result: apple.OptimizeResult) -> None:
56 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
   |                             ^^^^
57 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
58 |         u: Float[jax.Array, "P 3"] = u[physics.objects["box"].dof_id]
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/fat-muscle/src/20-simulate.py:57:29
   |
55 |     def callback(intermediate_result: apple.OptimizeResult) -> None:
56 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
57 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
   |                             ^^^^
58 |         u: Float[jax.Array, "P 3"] = u[physics.objects["box"].dof_id]
59 |         result: pv.UnstructuredGrid = physics.objects["box"].geometry
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/fat-muscle/src/20-simulate.py:58:29
   |
56 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
57 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
58 |         u: Float[jax.Array, "P 3"] = u[physics.objects["box"].dof_id]
   |                             ^^^^^
59 |         result: pv.UnstructuredGrid = physics.objects["box"].geometry
60 |         result.point_data["solution"] = np.asarray(u)
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:32:34
   |
30 |     )
31 |     physics.add(apple.Object("flesh", apple.jax.energy.tetra.Phace(), geometry))
32 |     activation: Float[jax.Array, "C 3 3"] = activations(
   |                                  ^^^^^^^
33 |         geometry,
34 |         np.asarray(
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:55:29
   |
54 |     def callback(intermediate_result: apple.OptimizeResult) -> None:
55 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
   |                             ^^^^
56 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
57 |         u: Float[jax.Array, "P 3"] = u[physics.objects["flesh"].dof_id]
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:56:29
   |
54 |     def callback(intermediate_result: apple.OptimizeResult) -> None:
55 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
56 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
   |                             ^^^^
57 |         u: Float[jax.Array, "P 3"] = u[physics.objects["flesh"].dof_id]
58 |         result: pv.UnstructuredGrid = physics.objects["flesh"].geometry
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:57:29
   |
55 |         u: Float[jax.Array, " F"] = intermediate_result["x"]
56 |         u: Float[jax.Array, " T"] = physics.fill_dirichlet(u, q)
57 |         u: Float[jax.Array, "P 3"] = u[physics.objects["flesh"].dof_id]
   |                             ^^^^^
58 |         result: pv.UnstructuredGrid = physics.objects["flesh"].geometry
59 |         result.point_data["solution"] = np.asarray(u)
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:72:61
   |
71 | def activations(
72 |     tetmesh: pv.UnstructuredGrid, stretch: Float[ArrayLike, " 3"]
   |                                                             ^^^^
73 | ) -> Float[jax.Array, "C 3 3"]:
74 |     muscle_direction: Float[np.ndarray, "C 3"] = tetmesh.cell_data["muscle-direction"]
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:73:23
   |
71 | def activations(
72 |     tetmesh: pv.UnstructuredGrid, stretch: Float[ArrayLike, " 3"]
73 | ) -> Float[jax.Array, "C 3 3"]:
   |                       ^^^^^^^
74 |     muscle_direction: Float[np.ndarray, "C 3"] = tetmesh.cell_data["muscle-direction"]
75 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:74:41
   |
72 |     tetmesh: pv.UnstructuredGrid, stretch: Float[ArrayLike, " 3"]
73 | ) -> Float[jax.Array, "C 3 3"]:
74 |     muscle_direction: Float[np.ndarray, "C 3"] = tetmesh.cell_data["muscle-direction"]
   |                                         ^^^^^
75 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
76 |     stretch: Float[jax.Array, " 3"] = jnp.asarray(stretch)
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:75:40
   |
73 | ) -> Float[jax.Array, "C 3 3"]:
74 |     muscle_direction: Float[np.ndarray, "C 3"] = tetmesh.cell_data["muscle-direction"]
75 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
   |                                        ^^^^
76 |     stretch: Float[jax.Array, " 3"] = jnp.asarray(stretch)
77 |     orientation: Float[jax.Array, "C 3 3"] = apple.jax.math.orientation_matrix(
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:76:31
   |
74 |     muscle_direction: Float[np.ndarray, "C 3"] = tetmesh.cell_data["muscle-direction"]
75 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
76 |     stretch: Float[jax.Array, " 3"] = jnp.asarray(stretch)
   |                               ^^^^
77 |     orientation: Float[jax.Array, "C 3 3"] = apple.jax.math.orientation_matrix(
78 |         muscle_direction,
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:77:35
   |
75 |     muscle_fraction: Float[np.ndarray, " C"] = tetmesh.cell_data["muscle-fraction"]
76 |     stretch: Float[jax.Array, " 3"] = jnp.asarray(stretch)
77 |     orientation: Float[jax.Array, "C 3 3"] = apple.jax.math.orientation_matrix(
   |                                   ^^^^^^^
78 |         muscle_direction,
79 |         einops.repeat(np.asarray([1.0, 0.0, 0.0]), "i -> C i", C=tetmesh.n_cells),
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/10-simulate.py:81:34
   |
79 |         einops.repeat(np.asarray([1.0, 0.0, 0.0]), "i -> C i", C=tetmesh.n_cells),
80 |     )
81 |     activation: Float[jax.Array, "C 3 3"] = einops.einsum(
   |                                  ^^^^^^^
82 |         orientation,
83 |         jnp.asarray(stretch),
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/11-muscle-deformation.py:23:40
   |
21 |     tetmesh: pv.UnstructuredGrid = melon.load_unstructured_grid(cfg.tetmesh)
22 |
23 |     muscle_direction: Float[jax.Array, "C 3"] = jnp.asarray(
   |                                        ^^^^^
24 |         tetmesh.cell_data["muscle-direction"]
25 |     )
   |
F722 Syntax error in forward annotation: Expected an expression
  --> exp/2025/04/30/human-head/src/11-muscle-deformation.py:26:39
   |
24 |         tetmesh.cell_data["muscle-direction"]
25 |     )
26 |     muscle_fraction: Float[jax.Array, " C"] = jnp.asarray(
   |                                       ^^^^
27 |         tetmesh.cell_data["muscle-fraction"]
28 |     )
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/11-muscle-deformation.py:29:35
   |
27 |         tetmesh.cell_data["muscle-fraction"]
28 |     )
29 |     orientation: Float[jax.Array, "C 3 3"] = apple.jax.math.orientation_matrix(
   |                                   ^^^^^^^
30 |         muscle_direction,
31 |         einops.repeat(jnp.asarray([1.0, 0.0, 0.0]), "i -> C i", C=tetmesh.n_cells),
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/11-muscle-deformation.py:34:30
   |
32 |     )
33 |
34 |     points: Float[jax.Array, "P 3"] = jnp.asarray(tetmesh.points)
   |                              ^^^^^
35 |     cells: Float[jax.Array, "C 4"] = jnp.asarray(tetmesh.cells_dict[pv.CellType.TETRA])
36 |     dh_dX: Float[jax.Array, "C 4 3"] = apple.jax.elem.tetra.dh_dX(points[cells])
   |
F722 Syntax error in forward annotation: Unexpected token at the end of an expression
  --> exp/2025/04/30/human-head/src/11-muscle-deformation.py:35:29
   |
34 |     points: Float[jax.Array, "P 3"] = jnp.asarray(tetmesh.points)
35 |     cells: Float[jax.Array, "C 4"] = jnp.asarray(tetmesh.cells_dict[pv.C
(Truncated to 13333 characters out of 600238)
See detailed reports in MegaLinter artifacts
| ❌ 3 Tests Failed:
 View the full list of 3 ❄️ flaky test(s)
 
 
 To view more test analytics, go to the Test Analytics Dashboard | 
86cc5fa    to
    7da7494      
    Compare
  
    7da7494    to
    00e7d59      
    Compare
  
    00e7d59    to
    125b03c      
    Compare
  
    a60b0bb    to
    7c10bf7      
    Compare
  
    48333ca    to
    a46f16a      
    Compare
  
    8dec175    to
    4b75b9b      
    Compare
  
    4b75b9b    to
    631cda1      
    Compare
  
    updates: - [github.com/astral-sh/ruff-pre-commit: v0.14.1 → v0.14.2](astral-sh/ruff-pre-commit@v0.14.1...v0.14.2) - [github.com/biomejs/pre-commit: v2.2.6 → v2.3.1](biomejs/pre-commit@v2.2.6...v2.3.1)
631cda1    to
    55eb0d8      
    Compare
  
    
  
    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.
  
    
  
    
updates: