I've corrected some obvious issues, and we can fix others over time.
Mypy tests are currently broken, as adding the type hints has increased
mypy's testing surface.
The SuperMemo XML importer assumed that the A-factors used by
SuperMemo map 1-1 with E-factors (which correspond to Ease in
Anki). This resulted in too large E-factors for imported items.
This change adds an A-factor to E-factor conversion to the
importer.
When importing SuperMemo XML files, indicate to the BeautifulSoup
XML parser that the <br> tag is self-closing. This prevents it
from adding a matching </br> for every <br> tag. These extraneous
tags resulted in extra newlines in items imported from SuperMemo.
While we're at it, fix the same bug for a couple of other
self-closing HTML tags.
Not sure why the original author was converting angle brackets separately -
that code breaks the example provided in #480, but I'm not sure if removing it
will break other files.