# Path: jubakit/base.py
# class BaseLoader(object):
#   """
#   Loader loads rows from various data sources.
#   """
# 
#   def is_infinite(self):
#     """
#     Returns True if the length of the data source is indeterminate (e.g., MQ.)
#     """
#     return False
# 
#   def preprocess(self, ent):
#     """
#     Preprocesses the given dict-like object into another dict-like object.
#     The default implementation does not alter the object.  Users can override
#     this method to perform custom process.  You can yield None to skip the
#     record.
#     """
#     return ent
# 
#   def __iter__(self):
#     """
#     Loads each row from the data source.
#     """
#     for ent in self.rows():
#       processed = self.preprocess(ent)
#       if processed is not None:
#         yield processed
# 
#   def rows(self):
#     """
#     Subclasses must override this method and yield each row of data source
#     in flat dict-like object.  You can yield None to skip the record.
#     """
#     raise NotImplementedError()


import os
import threading
  import queue
  import Queue as queue
import tweepy.auth
import jq
from tweepy.streaming import StreamListener, Stream
from tweepy.auth import OAuthHandler
from ..base import BaseLoader
from ..compat import *
# -*- coding: utf-8 -*-

from __future__ import absolute_import, division, print_function, unicode_literals


try:
  # Python 3
except ImportError:
  # Python 2




# Path: jubakit/base.py
# class BaseLoader(object):
#   """
#   Loader loads rows from various data sources.
#   """
# 
#   def is_infinite(self):
#     """
#     Returns True if the length of the data source is indeterminate (e.g., MQ.)
#     """
#     return False
# 
#   def preprocess(self, ent):
#     """
#     Preprocesses the given dict-like object into another dict-like object.
#     The default implementation does not alter the object.  Users can override
#     this method to perform custom process.  You can yield None to skip the
#     record.
#     """
#     return ent
# 
#   def __iter__(self):
#     """
#     Loads each row from the data source.
#     """
#     for ent in self.rows():
#       processed = self.preprocess(ent)
#       if processed is not None:
#         yield processed
# 
#   def rows(self):
#     """
#     Subclasses must override this method and yield each row of data source
#     in flat dict-like object.  You can yield None to skip the record.
#     """
#     raise NotImplementedError()


# Path: jubakit/loader/twitter.py
import os
import threading
  import queue
  import Queue as queue
import tweepy.auth
import jq
from tweepy.streaming import StreamListener, Stream
from tweepy.auth import OAuthHandler
from ..base import BaseLoader
from ..compat import *

# -*- coding: utf-8 -*-

from __future__ import absolute_import, division, print_function, unicode_literals


try:
  # Python 3
except ImportError:
  # Python 2




class TwitterStreamLoader(BaseLoader):