New submission from mobiusklein <mobiuskl...@gmail.com>:
The following code looks correct: ```python import os class A(os.PathLike): pass class B(os.PathLike): pass assert issubclass(A, os.PathLike) # direct inheritance relationship assert issubclass(B, os.PathLike) # direct inheritance relationship assert not issubclass(A, B) # A is not derived from B or vice-versa ``` On Python 3.7.0-3.7.6 and 3.8.0-3.8.1 the third assertion fails. The expected behavior was restored in 3.7.7 and 3.8.2. This seems to be around when the internals of `abc` were translated to C. Given that the behavior was fixed, but a bug fix matching this behavior wasn't listed in the changelog, the only resolution is to document that this behavior may be extant in older but still supported minor versions of Python. Where should that text be placed? ---------- components: Library (Lib) messages: 415467 nosy: mobiusklein priority: normal severity: normal status: open title: `issubclass` on two different subclasses of abstract base class like `os.PathLike` returns unexpected value on early versions of Py3.7 and Py3.8 type: behavior versions: Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue47055> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com