sarj-python-lint 0.84.1__tar.gz → 0.84.2__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.
Files changed (137) hide show
  1. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/PKG-INFO +1 -1
  2. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/pyproject.toml +1 -1
  3. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +1 -1
  4. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_offset_pagination.py +1 -1
  5. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +1 -1
  6. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +1 -1
  7. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +1 -1
  8. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_tautological_expect.py +1 -1
  9. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_match_assert_never.py +2 -2
  10. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +1 -1
  11. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/trailing_value_narration.py +1 -1
  12. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +1 -1
  13. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/unused_mock_setup.py +1 -1
  14. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/.gitignore +0 -0
  15. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/LICENSE +0 -0
  16. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/README.md +0 -0
  17. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/__init__.py +0 -0
  18. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/__main__.py +0 -0
  19. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/_analysis_session.py +0 -0
  20. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/_filesystem.py +0 -0
  21. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/_python_target.py +0 -0
  22. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/_ratchet_cli.py +0 -0
  23. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/_secret_names.py +0 -0
  24. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/_version.py +0 -0
  25. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/py.typed +0 -0
  26. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/ratchet.py +0 -0
  27. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rule_base.py +0 -0
  28. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/__init__.py +0 -0
  29. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_ast_index.py +0 -0
  30. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_comments.py +0 -0
  31. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_docstrings.py +0 -0
  32. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_fastapi.py +0 -0
  33. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_first_party.py +0 -0
  34. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
  35. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_imports.py +0 -0
  36. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_logging.py +0 -0
  37. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_paths.py +0 -0
  38. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_project_index.py +0 -0
  39. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
  40. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_pytest.py +0 -0
  41. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_registry.py +0 -0
  42. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_sql.py +0 -0
  43. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
  44. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
  45. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
  46. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
  47. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
  48. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
  49. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
  50. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
  51. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
  52. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
  53. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
  54. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
  55. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
  56. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
  57. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
  58. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
  59. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
  60. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
  61. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_deleted_only_override_parameter.py +0 -0
  62. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
  63. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
  64. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
  65. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
  66. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
  67. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
  68. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
  69. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
  70. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
  71. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
  72. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
  73. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
  74. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
  75. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
  76. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
  77. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
  78. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
  79. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
  80. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
  81. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
  82. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_select_star.py +0 -0
  83. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
  84. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
  85. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
  86. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
  87. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_vague_annotations.py +0 -0
  88. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
  89. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
  90. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
  91. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
  92. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
  93. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
  94. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
  95. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
  96. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
  97. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
  98. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
  99. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
  100. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
  101. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
  102. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
  103. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
  104. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
  105. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
  106. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
  107. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
  108. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
  109. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
  110. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
  111. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
  112. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
  113. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
  114. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
  115. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
  116. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
  117. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
  118. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/pydantic_at_boundaries.py +0 -0
  119. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
  120. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
  121. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
  122. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
  123. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
  124. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
  125. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
  126. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
  127. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
  128. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
  129. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
  130. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/require_typed_http_test_response.py +0 -0
  131. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
  132. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/stepdown.py +0 -0
  133. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
  134. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
  135. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
  136. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
  137. {sarj_python_lint-0.84.1 → sarj_python_lint-0.84.2}/src/sarj_python_lint/rules/unused_test_factory_option.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sarj-python-lint
3
- Version: 0.84.1
3
+ Version: 0.84.2
4
4
  Summary: Custom Python lint rules — AST-based, pre-commit-friendly, hypermodern defaults
5
5
  Project-URL: Homepage, https://code-standards.sarj.ai/rules/python/
6
6
  Project-URL: Documentation, https://code-standards.sarj.ai/rules/python/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sarj-python-lint"
3
- version = "0.84.1"
3
+ version = "0.84.2"
4
4
  description = "Custom Python lint rules — AST-based, pre-commit-friendly, hypermodern defaults"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "sarj-ai" }]
@@ -129,7 +129,7 @@ class DefectXfailRequiresExplicitStrict(Rule):
129
129
  "fixed its XPASS may not fail the suite. Add literal `strict=True`; if only some "
130
130
  "parameter cases fail, move the marker to those `pytest.param` cases first."
131
131
  ),
132
- severity=Severity.WARNING,
132
+ severity=Severity.ERROR,
133
133
  )
134
134
  for node in _rotting_bug_pins(tree, imports)
135
135
  ]
@@ -128,7 +128,7 @@ class NoOffsetPagination(Rule):
128
128
  line=node.lineno,
129
129
  col=node.col_offset + 1,
130
130
  code=self.code,
131
- severity=Severity.WARNING,
131
+ severity=Severity.ERROR,
132
132
  message=(
133
133
  "Dynamic OFFSET pagination may scan skipped rows and drift under writes; use a stable unique "
134
134
  "keyset cursor, or document why bounded/random page access requires OFFSET."
@@ -157,7 +157,7 @@ class NoPositionalPsycopgRowEscape(Rule):
157
157
  line=cursor.call.lineno,
158
158
  col=cursor.call.col_offset + 1,
159
159
  code=self.code,
160
- severity=Severity.WARNING,
160
+ severity=Severity.ERROR,
161
161
  message=(
162
162
  "this positional Psycopg record escapes unchanged; return a named `class_row(Model)` "
163
163
  "record, use `scalar_row` for a scalar, or transform the tuple locally"
@@ -148,7 +148,7 @@ class NoPsycopgExecutionOutsideInjectedOwner(Rule):
148
148
  line=call.lineno,
149
149
  col=call.col_offset + 1,
150
150
  code=self.code,
151
- severity=Severity.WARNING,
151
+ severity=Severity.ERROR,
152
152
  message=(
153
153
  "Psycopg execution is outside a constructor-injected persistence owner; route it through the "
154
154
  "owning store, repository, or transaction API"
@@ -141,7 +141,7 @@ class NoServiceBehaviorInSettings(Rule):
141
141
  line=node.lineno,
142
142
  col=node.col_offset + 1,
143
143
  code=self.code,
144
- severity=Severity.WARNING,
144
+ severity=Severity.ERROR,
145
145
  message=(
146
146
  f"`{node.name}` is named as passive data but {methods} calls an injected collaborator — "
147
147
  "move orchestration to a service/coordinator and keep settings or configuration data-only."
@@ -102,7 +102,7 @@ class NoTautologicalExpect(Rule):
102
102
  col=node.col_offset + 1,
103
103
  code=self.code,
104
104
  message=_message(node, reason),
105
- severity=Severity.WARNING,
105
+ severity=Severity.ERROR,
106
106
  )
107
107
  for node, reason in _tautologies(tree, exempt)
108
108
  ]
@@ -128,7 +128,7 @@ class PreferMatchAssertNever(Rule):
128
128
  line=wildcard.pattern.lineno,
129
129
  col=wildcard.pattern.col_offset + 1,
130
130
  code=self.code,
131
- severity=Severity.WARNING,
131
+ severity=Severity.ERROR,
132
132
  message=(
133
133
  f"typed `{enum_name}` match has a no-op catch-all — an unhandled member "
134
134
  "is silently ignored; bind it and call `assert_never`, or raise."
@@ -146,7 +146,7 @@ class PreferMatchAssertNever(Rule):
146
146
  line=node.lineno,
147
147
  col=node.col_offset + 1,
148
148
  code=self.code,
149
- severity=Severity.WARNING,
149
+ severity=Severity.ERROR,
150
150
  message=(
151
151
  f"typed `{enum_name}` if/elif dispatch has a no-op `else` — an unhandled "
152
152
  "member is silently ignored; prefer match/case with `assert_never`, or raise."
@@ -181,7 +181,7 @@ def _settings_split_findings(
181
181
  line=field.annotation.lineno,
182
182
  col=field.annotation.col_offset + 1,
183
183
  code=code,
184
- severity=Severity.WARNING,
184
+ severity=Severity.ERROR,
185
185
  message=(
186
186
  f"Complex setting `{field_name}` is unconditionally split by `{function.name}` but "
187
187
  "environment sources may JSON-decode it first; if the input contract is raw text, "
@@ -234,7 +234,7 @@ class TrailingValueNarration(Rule):
234
234
  f"Trailing numeric-unit label {body.strip()!r} can drift; encode or reconcile the "
235
235
  "unit in the assigned name or value type, then remove the comment."
236
236
  ),
237
- severity=Severity.WARNING,
237
+ severity=Severity.ERROR,
238
238
  column_encoding=ColumnEncoding.CODEPOINTS,
239
239
  )
240
240
  )
@@ -479,7 +479,7 @@ def _test_randomness_findings(
479
479
  line=call.lineno,
480
480
  col=call.col_offset + 1,
481
481
  code=code,
482
- severity=Severity.WARNING,
482
+ severity=Severity.ERROR,
483
483
  message=(
484
484
  "a standard-library PRNG sample runs in a potentially repeated test region without a "
485
485
  "dominating deterministic seed; use an isolated `random.Random(seed)`, inject a "
@@ -155,7 +155,7 @@ class UnusedMockSetup(Rule):
155
155
  line=position[0],
156
156
  col=position[1],
157
157
  code=self.code,
158
- severity=Severity.WARNING,
158
+ severity=Severity.ERROR,
159
159
  message=finding.message,
160
160
  )
161
161
  )