def see_if_file_has_new_data(self, path):
        """
        Given a file path, determine whether we should read/send it.

        :rtype: bool
        :returns: ``True`` if the file should be read, ``False`` if not.
        """

        # Catching file removal by eve before we can read the mtime from the file
        try:
            stat_result = os.stat(path)
        except (__HOLE__, OSError):
            logger.error("Caught error from missing cache file")
            return False
            # File's last modified time.
        cache_mtime = stat_result.st_mtime

        if cache_mtime < self.start_time:
            # This file was modified before the uploader was started.
            return False

        # Not interested in files past five minutes staleness.
        cutoff = time.time() - (60 * 5)

        if cache_mtime < cutoff:
            # File is too stale to even consider.
            return False

        last_read = self.cache_file_tracker.get(path)
        if not last_read:
            # No key found, we need to read this file.
            return True

        # We've got a key, let's see if the mtimes match.
        if cache_mtime > last_read:
            # Modified time is greater than the time of our last recorded
            # reading of this file.
            return True

        return False
dataset/ETHPy150Open gtaylor/EVE-Market-Data-Uploader/emdu/cache_watcher/crude_watcher.py/CrudeCacheWatcher.see_if_file_has_new_data