# Path: src/tidypy/config.py
# def get_tools():
#     """
#     Retrieves the TidyPy tools that are available in the current Python
#     environment.
# 
#     The returned dictionary has keys that are the tool names and values are the
#     tool classes.
# 
#     :rtype: dict
#     """
# 
#     # pylint: disable=protected-access
# 
#     if not hasattr(get_tools, '_CACHE'):
#         get_tools._CACHE = {}
#         for entry in pkg_resources.iter_entry_points('tidypy.tools'):
#             try:
#                 get_tools._CACHE[entry.name] = entry.load()
#             except ImportError as exc:  # pragma: no cover
#                 output_error(
#                     'Could not load tool "%s" defined by "%s": %s' % (
#                         entry,
#                         entry.dist,
#                         exc,
#                     ),
#                 )
#     return get_tools._CACHE


import sys
from threading import Lock, Timer
from tqdm import tqdm
from .config import get_tools

        with self._lock:
            if tool in self.current_tools:
                self.current_tools.remove(tool)
                self.completed_tools.append(tool)

    def on_finish(self):
        """
        Called after all tools in the suite have completed.
        """


class QuietProgress(Progress):
    """
    An implementation of ``tidypy.Progress`` that produces no output.
    """


class ConsoleProgress(Progress):
    """
    An implementation of ``tidypy.Progress`` that outputs a progress bar to the
    console.
    """

    def __init__(self, config):
        super().__init__()
        self._timer = None

        tools = [
            name

# Path: src/tidypy/config.py
# def get_tools():
#     """
#     Retrieves the TidyPy tools that are available in the current Python
#     environment.
# 
#     The returned dictionary has keys that are the tool names and values are the
#     tool classes.
# 
#     :rtype: dict
#     """
# 
#     # pylint: disable=protected-access
# 
#     if not hasattr(get_tools, '_CACHE'):
#         get_tools._CACHE = {}
#         for entry in pkg_resources.iter_entry_points('tidypy.tools'):
#             try:
#                 get_tools._CACHE[entry.name] = entry.load()
#             except ImportError as exc:  # pragma: no cover
#                 output_error(
#                     'Could not load tool "%s" defined by "%s": %s' % (
#                         entry,
#                         entry.dist,
#                         exc,
#                     ),
#                 )
#     return get_tools._CACHE


# Path: src/tidypy/progress.py
import sys
from threading import Lock, Timer
from tqdm import tqdm
from .config import get_tools


        with self._lock:
            if tool in self.current_tools:
                self.current_tools.remove(tool)
                self.completed_tools.append(tool)

    def on_finish(self):
        """
        Called after all tools in the suite have completed.
        """


class QuietProgress(Progress):
    """
    An implementation of ``tidypy.Progress`` that produces no output.
    """


class ConsoleProgress(Progress):
    """
    An implementation of ``tidypy.Progress`` that outputs a progress bar to the
    console.
    """

    def __init__(self, config):
        super().__init__()
        self._timer = None

        tools = [
            name

            for name in get_tools()