forked from pixee/codemodder-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcore_codemod.py
More file actions
52 lines (41 loc) · 1.43 KB
/
Copy pathcore_codemod.py
File metadata and controls
52 lines (41 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from pathlib import Path
from codemodder.codemods.api import BaseCodemod, SimpleCodemod as _SimpleCodemod
from codemodder.codemods.base_codemod import Metadata
from codemodder.codemods.base_detector import BaseDetector
from codemodder.codemods.base_transformer import BaseTransformerPipeline
from codemodder.context import CodemodExecutionContext
class CoreCodemod(BaseCodemod):
"""
Base class for all core codemods provided by this package.
"""
@property
def origin(self):
return "pixee"
@property
def docs_module_path(self):
return "core_codemods.docs"
class SASTCodemod(CoreCodemod):
requested_rules: list[str]
def __init__(
self,
*,
metadata: Metadata,
detector: BaseDetector | None = None,
transformer: BaseTransformerPipeline,
requested_rules: list[str] | None = None,
):
super().__init__(metadata=metadata, detector=detector, transformer=transformer)
self.requested_rules = [self.name]
if requested_rules:
self.requested_rules.extend(requested_rules)
def apply(
self,
context: CodemodExecutionContext,
files_to_analyze: list[Path],
) -> None:
self._apply(context, files_to_analyze, self.requested_rules)
class SimpleCodemod(_SimpleCodemod):
"""
Base class for all core codemods with a single detector and transformer.
"""
codemod_base = CoreCodemod