Прикреплённый файл «BuildReq.py»
Загрузка 1 #!/usr/bin/env python3
2 '''
3 Print modules that own files given
4 '''
5
6 import subprocess
7 import json
8 import os
9 import sys
10
11 Run = subprocess.Popen(["pip", "list", "--not-required", "--format=json"], stdout=subprocess.PIPE)
12 Packages = {p['name'] for p in json.load(Run.stdout)}
13 Files = {}
14 Roots = set()
15
16 for p in Packages:
17 Run = subprocess.Popen(["pip", "show", "-f", p], text=True, stdout=subprocess.PIPE)
18 dofiles = None
19 for line in Run.stdout:
20 if line.startswith("Location: "):
21 root = line.split()[1].strip()
22 Roots.add(root)
23 elif dofiles:
24 if line.startswith(" "):
25 Files[os.path.join(root, line.strip())] = p
26 else:
27 dofiles = line.startswith("Files:")
28
29 if __name__ == "__main__" and len(sys.argv) > 1:
30 Modules = {}
31 os.environ["PYTHONVERBOSE"] = "import"
32 Run = subprocess.Popen(sys.argv[1:], stderr=subprocess.PIPE, stdout=subprocess.DEVNULL, text=True)
33 for line in Run.stderr:
34 for r in Roots:
35 match line.split():
36 case "#", _, "matches", fpath:
37 if (s := os.path.realpath(fpath)) in Files:
38 Modules.add(Files[s])
39
40 print('requires = ["' + '", "'.join(sorted(Modules)) + '"]', file=sys.stderr)
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.Вам нельзя прикреплять файлы к этой странице.