"test/verify/test_atanh.cpp" did not exist on "ba33d25cd3c5acd92d9a8a0c28abb45b288af4f2"
pack_dependencies.py 1.39 KB
Newer Older
1
"""
2
Create a zip archive named sys.argv[1], containing python-packages and node_modules.
3
Use unpack_dependencies.py to extract the archive.
4
5
6
7

Example usage:

    python test/vso_tools/pack_dependencies.py dependencies.zip
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""

import json
import os
from pathlib import Path
import shutil
import site
import sys
from zipfile import ZIP_DEFLATED, ZipFile

def main() -> None:
    cache = Path('cache')
    cache.mkdir()
    shutil.move('python-packages', 'cache/python-dependencies')
    shutil.move('ts/nni_manager/node_modules', 'cache/nni-manager-dependencies')
    shutil.move('ts/webui/node_modules', 'cache/webui-dependencies')

25
    archive = ZipFile(sys.argv[1], 'w', ZIP_DEFLATED, compresslevel=9)
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    symlinks = {}
    empty_dirs = set()
    for file in sorted(cache.rglob('*')):
        if file.parent.parent == cache or file.parent.name == 'site-packages':
            print('Compress', file, flush=True)
        if file.is_symlink():
            symlinks[str(file)] = os.readlink(file)  # file.readlink() was added in Python 3.9
            continue
        if file.is_dir():
            empty_dirs.add(str(file))
        else:
            archive.write(file)
        empty_dirs.discard(str(file.parent))
    archive.writestr('symlinks.json', json.dumps(symlinks, indent=4))
    archive.writestr('directories.json', json.dumps(list(empty_dirs), indent=4))
    archive.close()

if __name__ == '__main__':
    main()