package.py 1.1 KB
Newer Older
F
feilong 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
import os
import uuid

from src.main.utils import load_json, dump_json


class Package:
    def __init__(self, root) -> None:
        self.root = root

    def walk(self):
        for base, dirs, files in os.walk(self.root):
            for file_name in files:
                file_full_name = os.path.join(base, file_name)
                _, ext = os.path.splitext(file_name)
                if ext == '.json':
                    pkg = load_json(file_full_name)
F
feilong 已提交
18
                    if pkg.get('type') == 'job':
F
feilong 已提交
19 20 21
                        self.visit_package(file_full_name, pkg)

    def visit_package(self, file_full_name, pkg):
F
feilong 已提交
22 23 24 25 26 27 28
        pacakge = pkg['package']
        levels = pkg['levels']
        if pkg.get('package_id') is None or pkg.get('package_id').strip() == '':
            pkg['package_id'] = f'pkg-{pacakge}-'+uuid.uuid4().hex
        for level in levels:
            if level.get('level_id') is None or level.get('level_id') == '':
                level['level_id'] = f'pkg-level-{pacakge}'+uuid.uuid4().hex
F
feilong 已提交
29
        dump_json(file_full_name, pkg, exist_ok=True, override=True)