Expected Behavior
Using isinstance() for classes annotated with the deprecated library should work as expected, regardless of the number of annotations.
from deprecated.sphinx import versionadded
from deprecated.sphinx import versionchanged
from deprecated.sphinx import deprecated
@versionadded(version='X.Y', reason='some reason')
class VersionAdded:
pass
@versionadded(version='X.Y', reason='some reason')
class VersionAddedChild(VersionAdded):
pass
@versionchanged(version='X.Y', reason='some reason')
class VersionChanged:
pass
@versionchanged(version='X.Y', reason='some reason')
class VersionChangedChild(VersionChanged):
pass
@deprecated(version='X.Y', reason='some reason')
class Deprecated_:
pass
@deprecated(version='Y.Z', reason='some reason')
class DeprecatedChild_(Deprecated_):
pass
@versionadded(version='X.Y')
@versionchanged(version='X.Y.Z')
class AddedChanged:
pass
# should all be True
print([isinstance(VersionAddedChild(), VersionAddedChild), isinstance(VersionAddedChild(), VersionAdded)])
print([isinstance(VersionChangedChild(), VersionChangedChild), isinstance(VersionChangedChild(), VersionChanged)])
print([isinstance(DeprecatedChild_(), DeprecatedChild_), isinstance(DeprecatedChild_(), Deprecated_)])
print([isinstance(AddedChanged(), AddedChanged)])
Actual Behavior
Tell us what happens instead.
[False, False]
[False, False]
[True, True] # seems to have been addressed on 0e944e0
[False]
Environment
- Python version: 3.7.7
- Deprecated version: 1.2.12
Expected Behavior
Using isinstance() for classes annotated with the deprecated library should work as expected, regardless of the number of annotations.
Actual Behavior
Tell us what happens instead.
Environment