3.10 is out next week, while 3.6 reaches end of life by the end of this year.
It's time to require 3.7 or greater, so we can finally use built-in dataclasses and more.
Fixes https://github.com/fonttools/fonttools/issues/2350
* Replaced all from ...py23 import * with explicit name imports, or removed completely when possible.
* Replaced tounicode() with tostr()
* Changed all BytesIO ans StringIO imports to from io import ..., replaced all UnicodeIO with StringIO.
* Replaced all unichr() with chr()
* Misc minor tweaks and fixes
The T1 spec (https://www-cdf.fnal.gov/offline/PostScript/T1_SPEC.PDF) on
page 14 says that:
> The text encrypted by eexec must be followed by 512 ASCII zeros. There may be
> white space characters (blank, tab, carriage return or line feed)
> interspersed among these zeros.
* Add a failing test case with white space characters interspersed
among the trailing zeros after the eexec
* Fix eexec end finding so that it passes this new test case
* fix two cases where pathlib.Path objects were not accepted
* make macRes reader accept os.PathLike objects
* use __fspath__ explicitly to support os.PathLike paths
* use __fspath__ explicitly to support os.PathLike paths
* convert tmpdir to str
* only test pathlib.Path on Python 3.6 and up