# Path: chirp/library/audio_file.py
# class AudioFile(object):
#     def __eq__(self, other):
#         def _mutagen_id3_set(obj):
#     def has_ufid(self):
#     def ufid(self):
#     def ufid_tag(self):
#     def tpe1(self):
#     def talb(self):
#     def tit2(self):
#     def canonical_directory(self, prefix=""):
#     def canonical_filename(self):
#     def canonical_path(self, prefix=""):
# def _get_mp3(path):
# def _tag_to_int(au_file, tag_key):
# def scan_fast(path, _read_id3_hook=None):
# def scan(path, _read_id3_hook=None):


import logging
import os
import sys
import mutagen.mp3
from chirp.library import audio_file
                    and not self._directory_filter(self._current_dir)):
                    continue

                # Now walk across each file in this dir, yielding a
                # stream of AudioFile objects.
                for name in filenames:
                    full_path = os.path.join(self._current_dir, name)

                    # Skip files with the wrong sorts of names.  These are
                    # not logged.
                    if name.startswith("."):
                        continue

                    if not name.lower().endswith(".mp3"):
                        self.skipped_files.append(
                            (full_path, "Invalid filename"))
                        continue
                    
                    # Stat the file, and skip the files when that
                    # operation fails.
                    try:
                        stat_obj = os.stat(full_path)
                    except (IOError, OSError), ex:
                        self.skipped_files.append((full_path, str(ex)))
                        continue

                    try:
                        if self._fast:
                            au_file = audio_file.scan_fast(full_path)
                        else:

# Path: chirp/library/audio_file.py
# class AudioFile(object):
#     def __eq__(self, other):
#         def _mutagen_id3_set(obj):
#     def has_ufid(self):
#     def ufid(self):
#     def ufid_tag(self):
#     def tpe1(self):
#     def talb(self):
#     def tit2(self):
#     def canonical_directory(self, prefix=""):
#     def canonical_filename(self):
#     def canonical_path(self, prefix=""):
# def _get_mp3(path):
# def _tag_to_int(au_file, tag_key):
# def scan_fast(path, _read_id3_hook=None):
# def scan(path, _read_id3_hook=None):


# Path: chirp/library/crawler.py
import logging
import os
import sys
import mutagen.mp3
from chirp.library import audio_file

                    and not self._directory_filter(self._current_dir)):
                    continue

                # Now walk across each file in this dir, yielding a
                # stream of AudioFile objects.
                for name in filenames:
                    full_path = os.path.join(self._current_dir, name)

                    # Skip files with the wrong sorts of names.  These are
                    # not logged.
                    if name.startswith("."):
                        continue

                    if not name.lower().endswith(".mp3"):
                        self.skipped_files.append(
                            (full_path, "Invalid filename"))
                        continue
                    
                    # Stat the file, and skip the files when that
                    # operation fails.
                    try:
                        stat_obj = os.stat(full_path)
                    except (IOError, OSError), ex:
                        self.skipped_files.append((full_path, str(ex)))
                        continue

                    try:
                        if self._fast:
                            au_file = audio_file.scan_fast(full_path)
                        else:

                            au_file = audio_file.scan(full_path)