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.

Files changed (203) hide show
  1. {lintro-0.9.0/lintro.egg-info → lintro-0.10.0}/PKG-INFO +1 -1
  2. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/ruff-analysis.md +1 -0
  3. {lintro-0.9.0 → lintro-0.10.0}/lintro/__init__.py +1 -1
  4. {lintro-0.9.0 → lintro-0.10.0/lintro.egg-info}/PKG-INFO +1 -1
  5. {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/SOURCES.txt +2 -0
  6. {lintro-0.9.0 → lintro-0.10.0}/pyproject.toml +2 -2
  7. lintro-0.10.0/test_samples/ruff_naming_violations.py +26 -0
  8. lintro-0.10.0/tests/integration/test_ruff_naming.py +31 -0
  9. {lintro-0.9.0 → lintro-0.10.0}/LICENSE +0 -0
  10. {lintro-0.9.0 → lintro-0.10.0}/MANIFEST.in +0 -0
  11. {lintro-0.9.0 → lintro-0.10.0}/README.md +0 -0
  12. {lintro-0.9.0 → lintro-0.10.0}/assets/images/coverage-badge.svg +0 -0
  13. {lintro-0.9.0 → lintro-0.10.0}/assets/images/lintro.png +0 -0
  14. {lintro-0.9.0 → lintro-0.10.0}/docs/README.md +0 -0
  15. {lintro-0.9.0 → lintro-0.10.0}/docs/configuration.md +0 -0
  16. {lintro-0.9.0 → lintro-0.10.0}/docs/contributing.md +0 -0
  17. {lintro-0.9.0 → lintro-0.10.0}/docs/coverage-setup.md +0 -0
  18. {lintro-0.9.0 → lintro-0.10.0}/docs/docker.md +0 -0
  19. {lintro-0.9.0 → lintro-0.10.0}/docs/getting-started.md +0 -0
  20. {lintro-0.9.0 → lintro-0.10.0}/docs/github-integration.md +0 -0
  21. {lintro-0.9.0 → lintro-0.10.0}/docs/lintro-self-use.md +0 -0
  22. {lintro-0.9.0 → lintro-0.10.0}/docs/security/assurance.md +0 -0
  23. {lintro-0.9.0 → lintro-0.10.0}/docs/security/requirements.md +0 -0
  24. {lintro-0.9.0 → lintro-0.10.0}/docs/style-guide.md +0 -0
  25. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/README.md +0 -0
  26. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/actionlint-analysis.md +0 -0
  27. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/bandit-analysis.md +0 -0
  28. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/black-analysis.md +0 -0
  29. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/darglint-analysis.md +0 -0
  30. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/hadolint-analysis.md +0 -0
  31. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/prettier-analysis.md +0 -0
  32. {lintro-0.9.0 → lintro-0.10.0}/docs/tool-analysis/yamllint-analysis.md +0 -0
  33. {lintro-0.9.0 → lintro-0.10.0}/lintro/__main__.py +0 -0
  34. {lintro-0.9.0 → lintro-0.10.0}/lintro/ascii-art/fail.txt +0 -0
  35. {lintro-0.9.0 → lintro-0.10.0}/lintro/ascii-art/success.txt +0 -0
  36. {lintro-0.9.0 → lintro-0.10.0}/lintro/cli.py +0 -0
  37. {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/__init__.py +0 -0
  38. {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/__init__.py +0 -0
  39. {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/check.py +0 -0
  40. {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/format.py +0 -0
  41. {lintro-0.9.0 → lintro-0.10.0}/lintro/cli_utils/commands/list_tools.py +0 -0
  42. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/__init__.py +0 -0
  43. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/action.py +0 -0
  44. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/darglint_strictness.py +0 -0
  45. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/group_by.py +0 -0
  46. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/hadolint_enums.py +0 -0
  47. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/output_format.py +0 -0
  48. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/tool_name.py +0 -0
  49. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/tool_type.py +0 -0
  50. {lintro-0.9.0 → lintro-0.10.0}/lintro/enums/yamllint_format.py +0 -0
  51. {lintro-0.9.0 → lintro-0.10.0}/lintro/exceptions/__init__.py +0 -0
  52. {lintro-0.9.0 → lintro-0.10.0}/lintro/exceptions/errors.py +0 -0
  53. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/__init__.py +0 -0
  54. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/core/__init__.py +0 -0
  55. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/core/output_style.py +0 -0
  56. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/core/table_descriptor.py +0 -0
  57. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/__init__.py +0 -0
  58. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/csv.py +0 -0
  59. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/grid.py +0 -0
  60. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/html.py +0 -0
  61. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/json.py +0 -0
  62. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/markdown.py +0 -0
  63. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/styles/plain.py +0 -0
  64. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/__init__.py +0 -0
  65. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/actionlint_formatter.py +0 -0
  66. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/bandit_formatter.py +0 -0
  67. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/black_formatter.py +0 -0
  68. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/darglint_formatter.py +0 -0
  69. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/hadolint_formatter.py +0 -0
  70. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/prettier_formatter.py +0 -0
  71. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/ruff_formatter.py +0 -0
  72. {lintro-0.9.0 → lintro-0.10.0}/lintro/formatters/tools/yamllint_formatter.py +0 -0
  73. {lintro-0.9.0 → lintro-0.10.0}/lintro/models/__init__.py +0 -0
  74. {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/__init__.py +0 -0
  75. {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/tool.py +0 -0
  76. {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/tool_config.py +0 -0
  77. {lintro-0.9.0 → lintro-0.10.0}/lintro/models/core/tool_result.py +0 -0
  78. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/__init__.py +0 -0
  79. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/actionlint/__init__.py +0 -0
  80. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/actionlint/actionlint_issue.py +0 -0
  81. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/actionlint/actionlint_parser.py +0 -0
  82. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/black/black_issue.py +0 -0
  83. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/black/black_parser.py +0 -0
  84. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/darglint/__init__.py +0 -0
  85. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/darglint/darglint_issue.py +0 -0
  86. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/darglint/darglint_parser.py +0 -0
  87. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/hadolint/__init__.py +0 -0
  88. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/hadolint/hadolint_issue.py +0 -0
  89. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/hadolint/hadolint_parser.py +0 -0
  90. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/prettier/__init__.py +0 -0
  91. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/prettier/prettier_issue.py +0 -0
  92. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/prettier/prettier_parser.py +0 -0
  93. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/ruff/__init__.py +0 -0
  94. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/ruff/ruff_issue.py +0 -0
  95. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/ruff/ruff_parser.py +0 -0
  96. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/yamllint/__init__.py +0 -0
  97. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/yamllint/yamllint_issue.py +0 -0
  98. {lintro-0.9.0 → lintro-0.10.0}/lintro/parsers/yamllint/yamllint_parser.py +0 -0
  99. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/__init__.py +0 -0
  100. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/core/__init__.py +0 -0
  101. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/core/tool_base.py +0 -0
  102. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/core/tool_manager.py +0 -0
  103. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/__init__.py +0 -0
  104. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_actionlint.py +0 -0
  105. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_bandit.py +0 -0
  106. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_black.py +0 -0
  107. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_darglint.py +0 -0
  108. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_hadolint.py +0 -0
  109. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_prettier.py +0 -0
  110. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_ruff.py +0 -0
  111. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/implementations/tool_yamllint.py +0 -0
  112. {lintro-0.9.0 → lintro-0.10.0}/lintro/tools/tool_enum.py +0 -0
  113. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/__init__.py +0 -0
  114. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/ascii_normalize_cli.py +0 -0
  115. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/config.py +0 -0
  116. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/console_logger.py +0 -0
  117. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/formatting.py +0 -0
  118. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/output_manager.py +0 -0
  119. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/path_utils.py +0 -0
  120. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/tool_executor.py +0 -0
  121. {lintro-0.9.0 → lintro-0.10.0}/lintro/utils/tool_utils.py +0 -0
  122. {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/dependency_links.txt +0 -0
  123. {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/entry_points.txt +0 -0
  124. {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/requires.txt +0 -0
  125. {lintro-0.9.0 → lintro-0.10.0}/lintro.egg-info/top_level.txt +0 -0
  126. {lintro-0.9.0 → lintro-0.10.0}/setup.cfg +0 -0
  127. {lintro-0.9.0 → lintro-0.10.0}/test_samples/Dockerfile.violations +0 -0
  128. {lintro-0.9.0 → lintro-0.10.0}/test_samples/actionlint_violations.yml +0 -0
  129. {lintro-0.9.0 → lintro-0.10.0}/test_samples/bandit_violations.py +0 -0
  130. {lintro-0.9.0 → lintro-0.10.0}/test_samples/darglint_violations.py +0 -0
  131. {lintro-0.9.0 → lintro-0.10.0}/test_samples/prettier_violations.js +0 -0
  132. {lintro-0.9.0 → lintro-0.10.0}/test_samples/ruff_black_e501_wrappable.py +0 -0
  133. {lintro-0.9.0 → lintro-0.10.0}/test_samples/ruff_clean.py +0 -0
  134. {lintro-0.9.0 → lintro-0.10.0}/test_samples/ruff_violations.py +0 -0
  135. {lintro-0.9.0 → lintro-0.10.0}/test_samples/yaml_violations.yml +0 -0
  136. {lintro-0.9.0 → lintro-0.10.0}/tests/__init__.py +0 -0
  137. {lintro-0.9.0 → lintro-0.10.0}/tests/cli/__init__.py +0 -0
  138. {lintro-0.9.0 → lintro-0.10.0}/tests/cli/conftest.py +0 -0
  139. {lintro-0.9.0 → lintro-0.10.0}/tests/cli/test_cli.py +0 -0
  140. {lintro-0.9.0 → lintro-0.10.0}/tests/conftest.py +0 -0
  141. {lintro-0.9.0 → lintro-0.10.0}/tests/formatters/__init__.py +0 -0
  142. {lintro-0.9.0 → lintro-0.10.0}/tests/formatters/conftest.py +0 -0
  143. {lintro-0.9.0 → lintro-0.10.0}/tests/formatters/test_formatters.py +0 -0
  144. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/__init__.py +0 -0
  145. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/conftest.py +0 -0
  146. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_actionlint_integration.py +0 -0
  147. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_bandit_integration.py +0 -0
  148. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_darglint_integration.py +0 -0
  149. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_hadolint_integration.py +0 -0
  150. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_prettier_integration.py +0 -0
  151. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_ruff_black_policy.py +0 -0
  152. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_ruff_integration.py +0 -0
  153. {lintro-0.9.0 → lintro-0.10.0}/tests/integration/test_yamllint_integration.py +0 -0
  154. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/__init__.py +0 -0
  155. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_ci_post_pr_comment.py +0 -0
  156. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_delete_previous_lintro_comments.py +0 -0
  157. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_extract_version.py +0 -0
  158. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_ghcr_prune_untagged.py +0 -0
  159. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_github_comment_utilities.py +0 -0
  160. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_script_environment.py +0 -0
  161. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_semantic_release_compute_next.py +0 -0
  162. {lintro-0.9.0 → lintro-0.10.0}/tests/scripts/test_shell_scripts.py +0 -0
  163. {lintro-0.9.0 → lintro-0.10.0}/tests/test_documentation.py +0 -0
  164. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/__init__.py +0 -0
  165. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_ascii_normalize.py +0 -0
  166. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_command_building.py +0 -0
  167. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_config_hydration.py +0 -0
  168. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_formatter_mapping.py +0 -0
  169. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_bandit_parsing.py +0 -0
  170. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_formatter.py +0 -0
  171. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_parser.py +0 -0
  172. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_tool.py +0 -0
  173. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_black_tool_more.py +0 -0
  174. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_cli_commands.py +0 -0
  175. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_cli_commands_more.py +0 -0
  176. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_cli_programmatic.py +0 -0
  177. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_compatibility_ruff_black.py +0 -0
  178. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_config_loader.py +0 -0
  179. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_config_loader_more.py +0 -0
  180. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_console_logger.py +0 -0
  181. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_console_logger_more.py +0 -0
  182. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_enums_and_normalizers.py +0 -0
  183. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_exceptions.py +0 -0
  184. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_formatters_tables.py +0 -0
  185. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_output_manager_reports.py +0 -0
  186. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_parsers_actionlint.py +0 -0
  187. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_ruff_parser_additional.py +0 -0
  188. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_ruff_parser_more.py +0 -0
  189. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_subprocess_validator.py +0 -0
  190. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_base_subprocess.py +0 -0
  191. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor.py +0 -0
  192. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor_fmt_exclusion.py +0 -0
  193. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor_more.py +0 -0
  194. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_executor_post_checks.py +0 -0
  195. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_manager.py +0 -0
  196. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_utils.py +0 -0
  197. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_utils_fallbacks.py +0 -0
  198. {lintro-0.9.0 → lintro-0.10.0}/tests/unit/test_tool_utils_more.py +0 -0
  199. {lintro-0.9.0 → lintro-0.10.0}/tests/utils/__init__.py +0 -0
  200. {lintro-0.9.0 → lintro-0.10.0}/tests/utils/conftest.py +0 -0
  201. {lintro-0.9.0 → lintro-0.10.0}/tests/utils/test_formatting.py +0 -0
  202. {lintro-0.9.0 → lintro-0.10.0}/tests/utils/test_output_manager.py +0 -0
  203. {lintro-0.9.0 → lintro-0.10.0}/tests/utils/test_path_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lintro
3
- Version: 0.9.0
3
+ Version: 0.10.0
4
4
  Summary: A unified CLI tool for code formatting, linting, and quality assurance
5
5
  Author-email: TurboCoder13 <turbocoder13@gmail.com>
6
6
  License: MIT License
@@ -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 |
@@ -1,3 +1,3 @@
1
1
  """Lintro - A unified CLI core for code formatting, linting, and quality assurance."""
2
2
 
3
- __version__ = "0.9.0"
3
+ __version__ = "0.10.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lintro
3
- Version: 0.9.0
3
+ Version: 0.10.0
4
4
  Summary: A unified CLI tool for code formatting, linting, and quality assurance
5
5
  Author-email: TurboCoder13 <turbocoder13@gmail.com>
6
6
  License: MIT License
@@ -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.9.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