fix(spy): use classmethod __func__
source for async detection
#148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #146. Similarly to how we handle
staticmethod
, this PR gets the.__func__
attribute of aclassmethod
to use at aSpy
's source specification, which works around a bug (?) in Python whereinspect.iscoroutinefunction
returnsFalse
on Python <3.10 for async@classmethod
functions.This PR also drops Python 3.6 from the CI matrix due to GitHub dropping it from the
ubuntu-latest
runner since it EOL'd. Python 3.6 support is not officially dropped from Decoy (which I would put behind a major version bump) but ensuring proper behavior on 3.6 will be harder moving forward