fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
"package": "examples/celery/src/task_app",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 11,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "too_diverse",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "examples/javascript/tests",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 5,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "too_diverse",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "examples/tutorial/flaskr",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 18,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "too_diverse",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "examples/tutorial/tests",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 25,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "too_diverse",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "src/flask",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 216,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "too_diverse",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "src/flask/json",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 50,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "low_structure",
|
|
|
|
|
"structure_score": 0.042105263157894736
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "src/flask/sansio",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 102,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "low_structure",
|
|
|
|
|
"structure_score": 0.009523809523809525
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "tests",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 962,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "low_structure",
|
|
|
|
|
"structure_score": 0.021897810218978103
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "tests/test_apps",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 3,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "too_diverse",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "tests/test_apps/blueprintapp/apps",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 4,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "",
|
|
|
|
|
"structure_score": 0.2857142857142857,
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
"sore": "return.render_template+",
|
|
|
|
|
"gbnf": "root ::= \"return\" \"render_template\"+",
|
|
|
|
|
"gbnf_ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "tests/type_check",
|
|
|
|
|
"ext": ".py",
|
|
|
|
|
"methods": 24,
|
2026-07-12 03:02:50 +02:00
|
|
|
"skip": "",
|
|
|
|
|
"structure_score": 0.5597014925373135,
|
|
|
|
|
"sore": "def?.(Generator+encode+for+in+iter+range+return+show+str+t+x+yield)+?.stream_template+?.(Response+code+jsonify)+?.render_template+?.HTTPStatus?.name+?.self?.OK?.template_name+?",
|
|
|
|
|
"gbnf": "root ::= \"def\"? (\"Generator\" | \"encode\" | \"for\" | \"in\" | \"iter\" | \"range\" | \"return\" | \"show\" | \"str\" | \"t\" | \"x\" | \"yield\")* \"stream_template\"* (\"Response\" | \"code\" | \"jsonify\")* \"render_template\"* \"HTTPStatus\"? \"name\"* \"self\"? \"OK\"? \"template_name\"*",
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
"gbnf_ok": true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"package": "(other)",
|
|
|
|
|
"ext": ".py",
|
2026-07-12 03:02:50 +02:00
|
|
|
"methods": 4,
|
|
|
|
|
"skip": "",
|
|
|
|
|
"structure_score": 0
|
fix: validate SORE before returning, skip malformed grammars
- Add validate_sore() to gbnf.py — checks parseability without converting
- _infer_group now validates grammar and returns skip_reason='malformed_grammar'
for SOREs containing raw code (e.g. w_body=, sult=, (+,+:N+...)
- Results: 130 grammars, 130 GBNF OK, 0 GBNF FAIL
- Flask: 5 OK, 0 FAIL, 3.4s
- RAGSAK: 19 OK, 0 FAIL, 11 malformed, 12.9s
- FastAPI: 106 OK, 0 FAIL, 6 malformed, 30.5s
2026-07-12 02:56:13 +02:00
|
|
|
}
|
|
|
|
|
]
|