File size: 929 Bytes
b19c92c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from .refactor_engine import RefactorEngine
from .bug_detector import BugDetector
from .code_converter import CodeConverter
from .patch_generator import PatchGenerator
from .tokenizer import get_tokenizer
from .model import SmallCodeTransformer
class InferencePipeline:
    def __init__(self):
        self.refactor=RefactorEngine()
        self.bugs=BugDetector()
        self.convert_engine=CodeConverter()
        self.patch=PatchGenerator()
        self.tokenizer=get_tokenizer()
        self.model=SmallCodeTransformer(vocab_size=self.tokenizer.vocab_size)
    def analyze_and_refactor(self,code,lang):
        issues=self.bugs.analyze(code,lang)
        ref=self.refactor.refactor(code,lang)
        diff=self.patch.unified_diff(code,ref,f"code.{lang}")
        return {'issues':issues,'refactored':ref,'diff':diff}
    def convert(self,code,src,tgt):
        return {'converted':self.convert_engine.convert(code,src,tgt)}