提交 2effaf15 authored 作者: Virgile Andreani's avatar Virgile Andreani 提交者: Virgile Andreani

Fix check_duplicate_key.py and remove os.path

上级 320f66a6
import os
import pickle
import sys
from collections import Counter
from pathlib import Path
from pytensor.configdefaults import config
......@@ -12,32 +12,25 @@ DISPLAY_MOST_FREQUENT_DUPLICATE_CCODE = False
dirs: list = []
if len(sys.argv) > 1:
for compiledir in sys.argv[1:]:
dirs.extend(os.path.join(compiledir, d) for d in os.listdir(compiledir))
dirs.extend(x.resolve() for x in Path(compiledir).iterdir())
else:
dirs = os.listdir(config.compiledir)
dirs = [os.path.join(config.compiledir, d) for d in dirs]
dirs = [x.resolve() for x in config.compiledir.iterdir()]
keys: Counter[bytes] = Counter() # key -> nb seen
mods: dict = {}
for dir in dirs:
key = None
if not dir.is_dir():
continue
try:
with open(os.path.join(dir, "key.pkl"), "rb") as f:
key = f.read()
key = (dir / "key.pkl").read_bytes()
keys[key] += 1
del f
except OSError:
except FileNotFoundError:
# print dir, "don't have a key.pkl file"
pass
try:
path = os.path.join(dir, "mod.cpp")
with open(path) as fmod:
mod = fmod.read()
mod = (dir / "mod.cpp").read_text(encoding="utf-8")
mods.setdefault(mod, ())
mods[mod] += (key,)
del mod
del fmod
del path
except OSError:
except FileNotFoundError:
print(dir, "don't have a mod.cpp file")
if DISPLAY_DUPLICATE_KEYS:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论