aea0a6fcc6
Running and testing should be working on the three platforms, but there's still a fair bit that needs to be done: - Wheel building + testing in a venv still needs to be implemented. - Python requirements still need to be compiled with piptool and pinned; need to compile on all platforms then merge - Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally unified into one place - Currently using rustls to work around openssl compilation issues on Linux, but this will break corporate proxies with custom SSL authorities; need to conditionally use openssl or use https://github.com/seanmonstar/reqwest/pull/1058 - Makefiles and docs still need cleaning up - It may make sense to reparent ts/* to the top level, as we don't nest the other modules under a specific language. - rspy and pylib must always be updated in lock-step, so merging rspy into pylib as a private module would simplify things. - Merging desktop-ftl and mobile-ftl into the core ftl would make managing and updating translations easier. - Obsolete scripts need removing. - And probably more.
37 lines
842 B
Python
37 lines
842 B
Python
# a quick script to compare methods in the two schedulers
|
|
|
|
import inspect
|
|
import sys
|
|
from difflib import SequenceMatcher, unified_diff
|
|
|
|
from anki.sched import Scheduler as S1
|
|
from anki.schedv2 import Scheduler as S2
|
|
|
|
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()
|