from PytorchBoot.application import PytorchBootApplication
from runners.inferencer import Inferencer
from runners.inference_server import InferencerServer

@PytorchBootApplication("inference")
class InferenceApp:
    @staticmethod
    def start():
        ''' 
            call default or your custom runners here, code will be executed 
        automatically when type "pytorch-boot run" or "ptb run" in terminal
        
            example:
                Trainer("path_to_your_train_config").run()
                Evaluator("path_to_your_eval_config").run()
        '''       
        Inferencer("./configs/local/inference_config.yaml").run()

@PytorchBootApplication("server")
class InferenceServerApp:
    @staticmethod
    def start():
        ''' 
            call default or your custom runners here, code will be executed 
        automatically when type "pytorch-boot run" or "ptb run" in terminal
        
            example:
                Trainer("path_to_your_train_config").run()
                Evaluator("path_to_your_eval_config").run()
        '''       
        InferencerServer("./configs/server/server_inference_server_config.yaml").run()