scikit-image

Форк
0
/
generate_requirements.py 
39 строк · 1.1 Кб
1
#!/usr/bin/env python
2
"""Generate requirements/*.txt files from pyproject.toml."""
3

4
import sys
5
from pathlib import Path
6

7
try:  # standard module since Python 3.11
8
    import tomllib as toml
9
except ImportError:
10
    try:  # available for older Python via pip
11
        import tomli as toml
12
    except ImportError:
13
        sys.exit("Please install `tomli` first: `pip install tomli`")
14

15
script_pth = Path(__file__)
16
repo_dir = script_pth.parent.parent
17
script_relpth = script_pth.relative_to(repo_dir)
18
header = [
19
    f"# Generated via {script_relpth.as_posix()} and pre-commit hook.",
20
    "# Do not edit this file; modify pyproject.toml instead.",
21
]
22

23

24
def generate_requirement_file(name: str, req_list: list[str]) -> None:
25
    req_fname = repo_dir / "requirements" / f"{name}.txt"
26
    req_fname.write_text("\n".join(header + req_list) + "\n")
27

28

29
def main() -> None:
30
    pyproject = toml.loads((repo_dir / "pyproject.toml").read_text())
31

32
    generate_requirement_file("default", pyproject["project"]["dependencies"])
33

34
    for key, opt_list in pyproject["project"]["optional-dependencies"].items():
35
        generate_requirement_file(key, opt_list)
36

37

38
if __name__ == "__main__":
39
    main()
40

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

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

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

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