New submission from mobiusklein :
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
<https://bugs.python.org/issue47055>
___
___
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com