client.py 3.98 KB
Newer Older
Matteo's avatar
update  
Matteo committed
1
2
3
4
5
6
7
8
from rich.console import Console
import os

import grpc
from mpai_cae_arp.network import arp_pb2
from mpai_cae_arp.network import arp_pb2_grpc

channels = {
Matteo's avatar
update    
Matteo committed
9
10
    "AudioAnalyser": grpc.insecure_channel("[::]:50051"),
    "VideoAnalyser": grpc.insecure_channel("[::]:50052"),
Matteo's avatar
Matteo committed
11
    "TapeIrregularityClassifier": grpc.insecure_channel("[::]:50053"),
Matteo's avatar
update    
Matteo committed
12
13
    "TapeAudioRestoration": grpc.insecure_channel("[::]:50051"),
    #"Packager": grpc.insecure_channel("[::]:50051/packager"),
Matteo's avatar
update  
Matteo committed
14
15
16
17
}

def run(console: Console):

Matteo's avatar
update    
Matteo committed
18
19
    audio_analyser = arp_pb2_grpc.AIMStub(channels["AudioAnalyser"])
    video_analyser = arp_pb2_grpc.AIMStub(channels["VideoAnalyser"])
Matteo's avatar
Matteo committed
20
    tape_irreg_classifier = arp_pb2_grpc.AIMStub(channels["TapeIrregularityClassifier"])
Matteo's avatar
update    
Matteo committed
21
    tape_audio_restoration = arp_pb2_grpc.AIMStub(channels["TapeAudioRestoration"])
Matteo's avatar
update    
Matteo committed
22
23

    request = arp_pb2.InfoRequest()
Matteo's avatar
update    
Matteo committed
24
25
26
    # for analyser in [audio_analyser, video_analyser, tape_irreg_classifier]:
    #     response = analyser.getInfo(request)
    #     console.print("[bold]{}[/], v{}".format(response.title, response.version))
Matteo's avatar
update  
Matteo committed
27

Matteo's avatar
update    
Matteo committed
28
    request = arp_pb2.JobRequest(
Matteo's avatar
update    
Matteo committed
29
        working_dir="../data",
Matteo's avatar
update    
Matteo committed
30
31
32
33
        files_name="BERIO100",
        index=1,
    )

Matteo's avatar
update    
Matteo committed
34
35
36
37
38
39
40
41
42
    # with console.status("[bold]Computing AudioAnalyser IrregularityFile 1...", spinner="bouncingBall"):
    #     for result in audio_analyser.work(request):
    #         if result.status == "error":
    #             console.print("[bold red]Error![/] :boom:")
    #             console.print(f"[italic red]{result.message}")
    #             for channel in channels.values():
    #                 channel.close()
    #             exit(os.EX_SOFTWARE)
    #         console.print(result.message)
Matteo's avatar
update    
Matteo committed
43

Matteo's avatar
update    
Matteo committed
44
45
46
47
48
49
50
51
52
53
    # request.files_name = "BERIO100.mov"
    # with console.status("[bold]Computing VideoAnalyser IrregularityFiles...", spinner="bouncingBall"):
    #     for result in video_analyser.work(request):
    #         if result.status == "error":
    #             console.print("[bold red]Error![/] :boom:")
    #             console.print(f"[italic red]{result.message}")
    #             for channel in channels.values():
    #                 channel.close()
    #             exit(os.EX_SOFTWARE)
    #         console.print(result.message)
Matteo's avatar
update    
Matteo committed
54

Matteo's avatar
update    
Matteo committed
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
    # request.index = 2
    # request.files_name = "BERIO100"
    # with console.status("[bold]Computing AudioAnalyser IrregularityFile 2...", spinner="bouncingBall"):
    #     for result in audio_analyser.work(request):
    #         if result.status == "error":
    #             console.print("[bold red]Error![/] :boom:")
    #             console.print(f"[italic red]{result.message}")
    #             for channel in channels.values():
    #                 channel.close()
    #             exit(os.EX_SOFTWARE)
    #         console.print(result.message)

    # with console.status("[bold]Computing TapeIrregularityClassifier...", spinner="bouncingBall"):
    #     for result in tape_irreg_classifier.work(request):
    #         if result.status == "error":
    #             console.print("[bold red]Error![/] :boom:")
    #             console.print(f"[italic red]{result.message}")
    #             for channel in channels.values():
    #                 channel.close()
    #             exit(os.EX_SOFTWARE)
    #         console.print(result.message)
Matteo's avatar
update    
Matteo committed
76

Matteo's avatar
update    
Matteo committed
77
78
    with console.status("[bold]Computing TapeAudioRestoration...", spinner="bouncingBall"):
        for result in tape_audio_restoration.work(request):
Matteo's avatar
Matteo committed
79
80
81
82
83
84
85
86
            if result.status == "error":
                console.print("[bold red]Error![/] :boom:")
                console.print(f"[italic red]{result.message}")
                for channel in channels.values():
                    channel.close()
                exit(os.EX_SOFTWARE)
            console.print(result.message)

Matteo's avatar
update    
Matteo committed
87
88
    channels["AudioAnalyser"].close()
    channels["VideoAnalyser"].close()
Matteo's avatar
Matteo committed
89
    channels["TapeIrregularityClassifier"].close()
Matteo's avatar
update    
Matteo committed
90
    channels["TapeAudioRestoration"].close()
Matteo's avatar
update  
Matteo committed
91
92
93
94
95
96

    console.print("[bold green]Success![/] :tada:")


if __name__ == '__main__':
    console = Console()
Matteo's avatar
update    
Matteo committed
97
    run(console)