{"id":6040,"library":"prospector","title":"Prospector","description":"Prospector is a comprehensive Python code analysis tool that aggregates results from various static analysis tools like Pylint, Mypy, and Flake8. It offers a unified interface for code quality checks, supporting configurable profiles and output formats. Currently at version 1.18.0, Prospector maintains an active development pace with frequent releases addressing dependency updates, bug fixes, and minor feature enhancements.","status":"active","version":"1.18.0","language":"en","source_language":"en","source_url":"https://github.com/prospector-dev/prospector","tags":["code analysis","linting","static analysis","quality assurance","pylint","mypy","flake8"],"install":[{"cmd":"pip install prospector","lang":"bash","label":"Install latest stable version (minimal)"},{"cmd":"pip install prospector[with_tools]","lang":"bash","label":"Install with common analysis tools (recommended)"}],"dependencies":[{"reason":"Required runtime environment.","package":"python","optional":false,"min_version":"3.9"},{"reason":"Commonly used underlying linter, included with 'with_tools' extra.","package":"pylint","optional":true},{"reason":"Commonly used type checker, included with 'with_tools' extra.","package":"mypy","optional":true},{"reason":"Commonly used style guide enforcement, included with 'with_tools' extra.","package":"flake8","optional":true}],"imports":[{"note":"Prospector is primarily a command-line tool. Programmatic use often involves `subprocess` or `prospector.run` for direct execution within Python.","symbol":"run","correct":"from prospector import run"}],"quickstart":{"code":"# Run Prospector on a Python file or directory\n# This will use default profiles and output to console.\nprospector my_module.py\n\n# Run with strict checks and a zero exit code on success\nprospector --strict --zero-exit my_package/","lang":"bash","description":"Run Prospector from the command line on a specified file or directory. For more control, use a configuration file like `.prospector.yml`."},"warnings":[{"fix":"Migrate any `pylint-flask` specific checks to alternative tools or manual review. Consider if `flake8-flask` or similar dedicated linters for Flask are needed and integrate them separately.","message":"The `pylint-flask` tool was removed due to being unmaintained and incompatible with newer `setuptools` versions. Projects relying on `pylint-flask` through Prospector will no longer have those checks.","severity":"breaking","affected_versions":">=1.16.0"},{"fix":"Optimize configuration by disabling unnecessary tools or checks for specific parts of the codebase. Utilize caching mechanisms if available (e.g., in CI). Run Prospector incrementally on changed files where possible.","message":"Performance can be an issue on large codebases due to the aggregation of multiple analysis tools. This can lead to long CI/CD pipeline runtimes.","severity":"gotcha","affected_versions":"All"},{"fix":"Start with a minimal `.prospector.yml` and gradually add complexity. Leverage Prospector's built-in profiles (`strict`, `moderate`, `web`). Use `prospector --dump-config` to understand the active configuration.","message":"Configuration can be complex. Managing profiles, tool-specific settings, and exclusions across `.prospector.yml`, `pyproject.toml`, or command-line arguments requires careful attention.","severity":"gotcha","affected_versions":"All"},{"fix":"Always test new Prospector versions in a staging environment before deploying to production. Review release notes for underlying tool version bumps. Pin Prospector to a specific version in `requirements.txt` or `pyproject.toml` to maintain stability.","message":"Prospector bundles specific versions of its underlying analysis tools. Upgrading Prospector can implicitly upgrade these tools, potentially introducing new errors or warnings that were not present in previous versions.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-14T00:00:00.000Z","next_check":"2026-07-13T00:00:00.000Z"}