I have a class MyStreamListener
that I'm trying to call from a different file, but I get the type error 'MyStreamListener' not callable
. From what I've read when referencing user made classes, it could be because I'm trying to access a reserved keyword in python, but I've already tried changing the name of the class. Is there anything else I'm doing wrong?
functionality.py
from authenticate import CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET
from twitter_stream import MyStreamListener
def oauth_authenticate():
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
return api
def streaming():
api = oauth_authenticate()
streamListener = MyStreamListener()
stream = tweepy.Stream(auth=api.auth, listener=streamListener())
if __name__ == '__main__':
print "wanting to stream"
streaming()
print "EXITING"
twitter_stream.py
import tweepy
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
print(status.text)
In the line:
stream = tweepy.Stream(auth = api.auth, listener = streamListener())
you are trying to call streamListener
since you've got the parens there. Instead, just pass the object itself, i.e.:
stream = tweepy.Stream(auth=api.auth, listener=streamListener)