Closed dmwyatt closed 4 months ago
what results seem out of place for what invocation? I assume the difference in results is because there are directories outside of core
that use the newly reported entries i.e. results from vulture core
- vulture .
.
Here's an example of something in core.signals:
@receiver(post_save, sender=CustomUser)
def update_is_published_on_user_change(sender, instance, **kwargs):
EmailSite.objects.update_publish_status(instance)
When I call vulture core
it reports that **kwargs
as being unused. When I call vulture .
it is not unused.
The thing is, is this function is never called by my own code, it's called internally by Django's code. As such, I would have thought it'd be identified as unused with either invocation...and regardless kwargs isn't used within the function.
Oh, I see. When vulture
parses the AST, I don't think there's currently a distinction between calls from thirdparty and internal apis. I could be wrong, but I think that'd explain the discrepancy
When I call
vulture core
it reports that**kwargs
as being unused. When I callvulture .
it is not unused.
Vulture ignores scopes. The vulture .
fails to report kwargs
as being unused because there's another function that uses kwargs
.
I have a Django project with this Vulture config:
If I run
vulture .
in the project root I get:If I run it against one of the directories within the project I get a more comprehensive result:
My understanding was that vulture would recursively descend against all files, but that's not what I'm seeing here I don't think.
With
vulture .
it does some descent (seecore/tests
for example). But it does more when I pass the directory as the path to check...