1- from codemodder .codemods .libcst_transformer import NewArg
2- from core_codemods .api import Metadata , Reference , ReviewGuidance , SimpleCodemod
1+ from codemodder .codemods .libcst_transformer import (
2+ LibcstResultTransformer ,
3+ LibcstTransformerPipeline ,
4+ NewArg ,
5+ )
6+ from codemodder .codemods .semgrep import SemgrepRuleDetector
7+ from core_codemods .api import CoreCodemod , Metadata , Reference , ReviewGuidance
38
49
5- class EnableJinja2Autoescape (SimpleCodemod ):
6- metadata = Metadata (
10+ class EnableJinja2AutoescapeTransformer (LibcstResultTransformer ):
11+ change_description = (
12+ "Sets the `autoescape` parameter in jinja2.Environment to `True`."
13+ )
14+
15+ def on_result_found (self , original_node , updated_node ):
16+ new_args = self .replace_args (
17+ original_node ,
18+ [NewArg (name = "autoescape" , value = "True" , add_if_missing = True )],
19+ )
20+ return self .update_arg_target (updated_node , new_args )
21+
22+
23+ EnableJinja2Autoescape = CoreCodemod (
24+ metadata = Metadata (
725 name = "enable-jinja2-autoescape" ,
826 summary = "Enable Jinja2 Autoescape" ,
927 review_guidance = ReviewGuidance .MERGE_AFTER_REVIEW ,
@@ -13,11 +31,9 @@ class EnableJinja2Autoescape(SimpleCodemod):
1331 url = "https://jinja.palletsprojects.com/en/3.1.x/api/#autoescaping"
1432 ),
1533 ],
16- )
17- change_description = (
18- "Sets the `autoescape` parameter in jinja2.Environment to `True`."
19- )
20- detector_pattern = """
34+ ),
35+ detector = SemgrepRuleDetector (
36+ """
2137 rules:
2238 - pattern-either:
2339 - patterns:
@@ -35,10 +51,6 @@ class EnableJinja2Autoescape(SimpleCodemod):
3551 import aiohttp_jinja2
3652 ...
3753 """
38-
39- def on_result_found (self , original_node , updated_node ):
40- new_args = self .replace_args (
41- original_node ,
42- [NewArg (name = "autoescape" , value = "True" , add_if_missing = True )],
43- )
44- return self .update_arg_target (updated_node , new_args )
54+ ),
55+ transformer = LibcstTransformerPipeline (EnableJinja2AutoescapeTransformer ),
56+ )
0 commit comments