From c35afd4aaa49115cc0f8a30d94aa4b6cc1ee9cda Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 4 Mar 2020 21:34:18 +1000 Subject: [PATCH] add diffing script --- pylib/tools/diff-sched.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 pylib/tools/diff-sched.py diff --git a/pylib/tools/diff-sched.py b/pylib/tools/diff-sched.py new file mode 100644 index 000000000..2091f6d0a --- /dev/null +++ b/pylib/tools/diff-sched.py @@ -0,0 +1,35 @@ +# a quick script to compare methods in the two schedulers + +import inspect +from anki.sched import Scheduler as S1 +from anki.schedv2 import Scheduler as S2 +from difflib import SequenceMatcher, unified_diff +import sys + +s1map = {} +for k, v in S1.__dict__.items(): + if not callable(v): + continue + s1map[k] = v + +s2map = {} +for k, v in S2.__dict__.items(): + if not callable(v): + continue + s2map[k] = v + +for k, v in s1map.items(): + if k not in s2map: + continue + + s1b = inspect.getsource(v) + s2b = inspect.getsource(s2map[k]) + ratio = SequenceMatcher(None, s1b, s2b).ratio() + + if ratio >= 0.90: + print("*" * 80) + print(k, "%d%%" % (ratio * 100)) + sys.stdout.writelines( + "\n".join(unified_diff(s1b.splitlines(), s2b.splitlines(), lineterm="")) + ) + print()