sarj-python-lint 1.18.0__tar.gz → 1.19.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.
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/PKG-INFO +1 -1
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/pyproject.toml +1 -1
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_file_context.py +8 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_registry.py +4 -0
- sarj_python_lint-1.19.0/src/sarj_python_lint/rules/_test_provenance.py +805 -0
- sarj_python_lint-1.19.0/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +139 -0
- sarj_python_lint-1.19.0/src/sarj_python_lint/rules/no_test_method_grafting.py +146 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/.gitignore +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/LICENSE +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/README.md +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.18.0 → sarj_python_lint-1.19.0}/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: 1.
|
|
3
|
+
Version: 1.19.0
|
|
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/
|
|
@@ -15,6 +15,8 @@ if TYPE_CHECKING:
|
|
|
15
15
|
from collections.abc import Mapping
|
|
16
16
|
from pathlib import Path
|
|
17
17
|
|
|
18
|
+
from sarj_python_lint.rules._test_provenance import TestProvenance
|
|
19
|
+
|
|
18
20
|
|
|
19
21
|
@final
|
|
20
22
|
class PythonFileContext:
|
|
@@ -65,6 +67,12 @@ class PythonFileContext:
|
|
|
65
67
|
def fastapi(self) -> FastapiIndex:
|
|
66
68
|
return FastapiIndex(self._valid_tree(), path=self.path)
|
|
67
69
|
|
|
70
|
+
@cached_property
|
|
71
|
+
def test_provenance(self) -> TestProvenance:
|
|
72
|
+
from sarj_python_lint.rules._test_provenance import TestProvenance # ruff: ignore[import-outside-top-level] — defer test analysis until requested
|
|
73
|
+
|
|
74
|
+
return TestProvenance(self)
|
|
75
|
+
|
|
68
76
|
def _valid_tree(self) -> ast.Module:
|
|
69
77
|
tree = self.tree
|
|
70
78
|
if tree is None:
|
|
@@ -61,6 +61,7 @@ from sarj_python_lint.rules.no_hidden_constructor_fallback import (
|
|
|
61
61
|
)
|
|
62
62
|
from sarj_python_lint.rules.no_injected_module_loader import NoInjectedModuleLoader
|
|
63
63
|
from sarj_python_lint.rules.no_invalid_argument_name_suppression import NoInvalidArgumentNameSuppression
|
|
64
|
+
from sarj_python_lint.rules.no_mocked_pydantic_value_object import NoMockedPydanticValueObject
|
|
64
65
|
from sarj_python_lint.rules.no_nested_pydantic_field_validator import NoNestedPydanticFieldValidator
|
|
65
66
|
from sarj_python_lint.rules.no_nullable_dependency_fallback import NoNullableDependencyFallback
|
|
66
67
|
from sarj_python_lint.rules.no_offset_pagination import NoOffsetPagination
|
|
@@ -83,6 +84,7 @@ from sarj_python_lint.rules.no_shallow_container_type_guard import NoShallowCont
|
|
|
83
84
|
from sarj_python_lint.rules.no_string_concat_in_loop import NoStringConcatInLoop
|
|
84
85
|
from sarj_python_lint.rules.no_swallowed_asyncio_cancellation import NoSwallowedAsyncioCancellation
|
|
85
86
|
from sarj_python_lint.rules.no_tautological_expect import NoTautologicalExpect
|
|
87
|
+
from sarj_python_lint.rules.no_test_method_grafting import NoTestMethodGrafting
|
|
86
88
|
from sarj_python_lint.rules.no_typed_doc_sections import NoTypedDocSections
|
|
87
89
|
from sarj_python_lint.rules.no_unique_violation_message_match import (
|
|
88
90
|
NoUniqueViolationMessageMatch,
|
|
@@ -252,6 +254,8 @@ REGISTRY: Mapping[str, type[Rule]] = MappingProxyType(
|
|
|
252
254
|
PreferInjectedDependencyOverMonkeypatch.id: PreferInjectedDependencyOverMonkeypatch,
|
|
253
255
|
PreferMonkeypatchForProcessStateInTest.id: PreferMonkeypatchForProcessStateInTest,
|
|
254
256
|
MockWithoutSpec.id: MockWithoutSpec,
|
|
257
|
+
NoMockedPydanticValueObject.id: NoMockedPydanticValueObject,
|
|
258
|
+
NoTestMethodGrafting.id: NoTestMethodGrafting,
|
|
255
259
|
PreferAutospecForCallableMock.id: PreferAutospecForCallableMock,
|
|
256
260
|
OpaqueParametrizeCaseNeedsId.id: OpaqueParametrizeCaseNeedsId,
|
|
257
261
|
PytestFixtureReturnsBareTuple.id: PytestFixtureReturnsBareTuple,
|