lintro 0.9.0__tar.gz → 0.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lintro might be problematic. Click here for more details.
- {lintro-0.9.0/lintro.egg-info → lintro-0.10.0}/PKG-INFO +1 -1
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/ruff-analysis.md +1 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/__init__.py +1 -1
- {lintro-0.9.0 → lintro-0.10.0/lintro.egg-info}/PKG-INFO +1 -1
- {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/SOURCES.txt +2 -0
- {lintro-0.9.0 → lintro-0.10.0}/pyproject.toml +2 -2
- lintro-0.10.0/test_samples/ruff_naming_violations.py +26 -0
- lintro-0.10.0/tests/integration/test_ruff_naming.py +31 -0
- {lintro-0.9.0 → lintro-0.10.0}/LICENSE +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/MANIFEST.in +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/README.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/assets/images/coverage-badge.svg +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/assets/images/lintro.png +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/README.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/configuration.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/contributing.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/coverage-setup.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/docker.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/getting-started.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/github-integration.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/lintro-self-use.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/security/assurance.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/security/requirements.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/style-guide.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/README.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/actionlint-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/bandit-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/black-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/darglint-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/hadolint-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/prettier-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/yamllint-analysis.md +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/__main__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/ascii-art/fail.txt +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/ascii-art/success.txt +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/cli.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/check.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/format.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/list_tools.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/action.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/darglint_strictness.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/group_by.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/hadolint_enums.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/output_format.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/tool_name.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/tool_type.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/yamllint_format.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/exceptions/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/exceptions/errors.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/core/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/core/output_style.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/core/table_descriptor.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/csv.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/grid.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/html.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/json.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/markdown.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/plain.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/actionlint_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/bandit_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/black_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/darglint_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/hadolint_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/prettier_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/ruff_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/yamllint_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/models/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/tool.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/tool_config.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/tool_result.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/actionlint/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/actionlint/actionlint_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/actionlint/actionlint_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/black/black_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/black/black_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/darglint/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/darglint/darglint_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/darglint/darglint_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/hadolint/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/hadolint/hadolint_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/hadolint/hadolint_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/prettier/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/prettier/prettier_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/prettier/prettier_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/ruff/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/ruff/ruff_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/ruff/ruff_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/yamllint/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/yamllint/yamllint_issue.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/yamllint/yamllint_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/core/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/core/tool_base.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/core/tool_manager.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_actionlint.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_bandit.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_black.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_darglint.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_hadolint.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_prettier.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_ruff.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_yamllint.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/tool_enum.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/ascii_normalize_cli.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/config.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/console_logger.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/formatting.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/output_manager.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/path_utils.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/tool_executor.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/tool_utils.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/dependency_links.txt +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/entry_points.txt +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/requires.txt +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/top_level.txt +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/setup.cfg +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/Dockerfile.violations +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/actionlint_violations.yml +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/bandit_violations.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/darglint_violations.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/prettier_violations.js +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/ruff_black_e501_wrappable.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/ruff_clean.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/ruff_violations.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/test_samples/yaml_violations.yml +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/cli/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/cli/conftest.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/cli/test_cli.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/conftest.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/formatters/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/formatters/conftest.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/formatters/test_formatters.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/conftest.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_actionlint_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_bandit_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_darglint_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_hadolint_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_prettier_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_ruff_black_policy.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_ruff_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_yamllint_integration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_ci_post_pr_comment.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_delete_previous_lintro_comments.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_extract_version.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_ghcr_prune_untagged.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_github_comment_utilities.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_script_environment.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_semantic_release_compute_next.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_shell_scripts.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/test_documentation.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_ascii_normalize.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_command_building.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_config_hydration.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_formatter_mapping.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_parsing.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_formatter.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_parser.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_tool.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_tool_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_cli_commands.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_cli_commands_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_cli_programmatic.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_compatibility_ruff_black.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_config_loader.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_config_loader_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_console_logger.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_console_logger_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_enums_and_normalizers.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_exceptions.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_formatters_tables.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_output_manager_reports.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_parsers_actionlint.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_ruff_parser_additional.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_ruff_parser_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_subprocess_validator.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_base_subprocess.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor_fmt_exclusion.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor_post_checks.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_manager.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_utils.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_utils_fallbacks.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_utils_more.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/utils/__init__.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/utils/conftest.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/utils/test_formatting.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/utils/test_output_manager.py +0 -0
- {lintro-0.9.0 → lintro-0.10.0}/tests/utils/test_path_utils.py +0 -0
|
@@ -209,6 +209,7 @@ Lintro preserves all Ruff rule categories:
|
|
|
209
209
|
| **Pyflakes** | F | Logical errors and undefined names |
|
|
210
210
|
| **pycodestyle** | E, W | PEP 8 style violations |
|
|
211
211
|
| **isort** | I | Import sorting issues |
|
|
212
|
+
| **pep8-naming** | N | Naming conventions (PEP 8) |
|
|
212
213
|
| **pydocstyle** | D | Docstring style violations |
|
|
213
214
|
| **pyupgrade** | UP | Python upgrade suggestions |
|
|
214
215
|
| **flake8-bugbear** | B | Bug detection and complexity |
|
|
@@ -127,6 +127,7 @@ test_samples/darglint_violations.py
|
|
|
127
127
|
test_samples/prettier_violations.js
|
|
128
128
|
test_samples/ruff_black_e501_wrappable.py
|
|
129
129
|
test_samples/ruff_clean.py
|
|
130
|
+
test_samples/ruff_naming_violations.py
|
|
130
131
|
test_samples/ruff_violations.py
|
|
131
132
|
test_samples/yaml_violations.yml
|
|
132
133
|
tests/__init__.py
|
|
@@ -147,6 +148,7 @@ tests/integration/test_hadolint_integration.py
|
|
|
147
148
|
tests/integration/test_prettier_integration.py
|
|
148
149
|
tests/integration/test_ruff_black_policy.py
|
|
149
150
|
tests/integration/test_ruff_integration.py
|
|
151
|
+
tests/integration/test_ruff_naming.py
|
|
150
152
|
tests/integration/test_yamllint_integration.py
|
|
151
153
|
tests/scripts/__init__.py
|
|
152
154
|
tests/scripts/test_ci_post_pr_comment.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "lintro"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.10.0"
|
|
8
8
|
description = "A unified CLI tool for code formatting, linting, and quality assurance"
|
|
9
9
|
keywords = [ "linting", "formatting", "code-quality", "cli", "python", "javascript", "yaml", "docker",]
|
|
10
10
|
classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities",]
|
|
@@ -65,7 +65,7 @@ indent-style = "space"
|
|
|
65
65
|
skip-magic-trailing-comma = false
|
|
66
66
|
|
|
67
67
|
[tool.ruff.lint]
|
|
68
|
-
select = [ "E", "F", "W", "I", "COM", "D", "UP",]
|
|
68
|
+
select = [ "E", "F", "W", "I", "COM", "N", "D", "UP",]
|
|
69
69
|
ignore = []
|
|
70
70
|
|
|
71
71
|
[tool.ruff.pydocstyle]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Sample file with pep8-naming (N) violations for testing Ruff.
|
|
2
|
+
|
|
3
|
+
Intentionally violates several N-rules, such as:
|
|
4
|
+
- N802: function name should be lowercase
|
|
5
|
+
- N803: argument name should be lowercase
|
|
6
|
+
- N806: variable in function should be lowercase
|
|
7
|
+
- N815: mixedCase variable in class scope
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def BadFunctionName(BadArg: int) -> int: # N802, N803
|
|
12
|
+
BadLocal = BadArg + 1 # N806
|
|
13
|
+
return BadLocal
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class SampleClass:
|
|
17
|
+
camelCaseAttr = 1 # N815
|
|
18
|
+
|
|
19
|
+
def GoodMethod(self, BadParam: int) -> int: # N803
|
|
20
|
+
BadLocalVar = BadParam * 2 # N806
|
|
21
|
+
return BadLocalVar
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
CONSTANT_ok = 1 # not enforcing caps here; focus on N8xx basics
|
|
25
|
+
|
|
26
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""Integration tests for Ruff pep8-naming (N) rule family."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import shutil
|
|
7
|
+
import tempfile
|
|
8
|
+
|
|
9
|
+
from assertpy import assert_that
|
|
10
|
+
|
|
11
|
+
from lintro.tools.implementations.tool_ruff import RuffTool
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def test_pep8_naming_rules_detected() -> None:
|
|
15
|
+
"""Ensure Ruff reports N-family violations on a known sample file."""
|
|
16
|
+
sample = os.path.abspath("test_samples/ruff_naming_violations.py")
|
|
17
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
18
|
+
test_file = os.path.join(tmp, "ruff_naming_case.py")
|
|
19
|
+
shutil.copy(sample, test_file)
|
|
20
|
+
|
|
21
|
+
ruff = RuffTool()
|
|
22
|
+
ruff.set_options(select=["N"]) # only N rules
|
|
23
|
+
result = ruff.check([test_file])
|
|
24
|
+
|
|
25
|
+
assert_that(result.success).is_false()
|
|
26
|
+
codes = [getattr(i, "code", "") for i in (result.issues or [])]
|
|
27
|
+
# Expect several representative N-codes
|
|
28
|
+
assert_that(any(code.startswith("N8") for code in codes)).is_true()
|
|
29
|
+
assert_that(
|
|
30
|
+
any(code in {"N802", "N803", "N806", "N815"} for code in codes),
|
|
31
|
+
).is_true()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|