promptflow

Форк
0
52 строки · 1.1 Кб
1
# ---------------------------------------------------------
2
# Copyright (c) Microsoft Corporation. All rights reserved.
3
# ---------------------------------------------------------
4

5
import contextlib
6
import os
7
import platform
8
import subprocess
9
import sys
10
from pathlib import Path
11

12
REPO_ROOT_DIR = Path(__file__).parent.parent.parent
13

14

15
class Color:
16
    BLUE = "\033[94m"
17
    YELLOW = "\033[93m"
18
    END = "\033[0m"
19

20

21
def print_blue(msg: str) -> None:
22
    print(Color.BLUE + msg + Color.END)
23

24

25
def print_yellow(msg: str) -> None:
26
    print(Color.YELLOW + msg + Color.END)
27

28

29
@contextlib.contextmanager
30
def change_cwd(path):
31
    cwd = os.getcwd()
32
    try:
33
        os.chdir(path)
34
        yield
35
    finally:
36
        os.chdir(cwd)
37

38

39
def run_cmd(cmd, verbose: bool = False) -> None:
40
    print_blue(f"Running {' '.join(cmd)}")
41
    shell = platform.system() == "Windows"
42
    p = subprocess.Popen(
43
        cmd,
44
        stdout=subprocess.PIPE,
45
        stderr=subprocess.STDOUT,
46
        shell=shell,
47
    )
48
    for line in p.stdout:
49
        line = line.decode("utf-8").rstrip()
50
        if verbose:
51
            sys.stdout.write(f"{line}\n")
52
    p.communicate()
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.