client.py 3.33 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
14
15
16
17
    "TapeAudioRestoration": grpc.insecure_channel("[::]:50051/tape-audio-restoration"),
    "Packager": grpc.insecure_channel("[::]:50051/packager"),
}

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
22

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

Matteo's avatar
update    
Matteo committed
27
    request = arp_pb2.JobRequest(
Matteo's avatar
Matteo committed
28
        working_dir="/data",
Matteo's avatar
update    
Matteo committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
        files_name="BERIO100",
        index=1,
    )

    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)

    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)

    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)

Matteo's avatar
Matteo committed
66
67
68
69
70
71
72
73
74
75
    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
77
    channels["AudioAnalyser"].close()
    channels["VideoAnalyser"].close()
Matteo's avatar
Matteo committed
78
    channels["TapeIrregularityClassifier"].close()
Matteo's avatar
update  
Matteo committed
79
80
81
82
83
84

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


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