File size: 1,115 Bytes
547ac30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""Unpack the provided synthetic training data before training."""
from pathlib import Path
import zipfile
ROOT=Path(__file__).resolve().parent
ARCHIVE=ROOT/'training_data.zip'
EXPECTED=(ROOT/'data/robotics/train.npz',ROOT/'data/gmaw/train.npz',ROOT/'data/resistance_spot_welding/train.npz',ROOT/'data/tig_welding/train.npz',ROOT/'data/fdm/train.csv')
def prepare():
    if all(x.is_file() for x in EXPECTED):
        return False
    if not ARCHIVE.is_file():
        raise FileNotFoundError('training_data.zip is missing.')
    with zipfile.ZipFile(ARCHIVE) as archive:
        bad=archive.testzip()
        if bad:raise RuntimeError(f'Training archive damaged: {bad}')
        for item in archive.infolist():
            dest=(ROOT/item.filename).resolve()
            if not dest.is_relative_to(ROOT.resolve()):raise RuntimeError('Unsafe path in training archive')
        archive.extractall(ROOT)
    if not all(x.is_file() for x in EXPECTED):
        raise RuntimeError('The training archive is incomplete.')
    print('Synthetic data extracted into data/.')
    return True
if __name__=='__main__':prepare()