sarj-python-lint 1.25.1__tar.gz → 1.25.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.
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/PKG-INFO +1 -1
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/pyproject.toml +1 -1
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +13 -5
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/.gitignore +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/LICENSE +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/README.md +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.25.1 → sarj_python_lint-1.25.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: 1.25.
|
|
3
|
+
Version: 1.25.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/
|
|
@@ -113,7 +113,8 @@ class PreferCollectionComprehension(Rule):
|
|
|
113
113
|
"Comments, loop-target leakage, try blocks, aliases, complex projections, and replacements that "
|
|
114
114
|
"do not fit a 120-column line or a simple formatter-style multiline comprehension are excluded. "
|
|
115
115
|
"Namespace observers, explicit inspect/sys frame access, and collections referenced by nested functions "
|
|
116
|
-
"are excluded.
|
|
116
|
+
"are excluded. Dynamic function aliases and helper-hidden frame reads are not resolved. "
|
|
117
|
+
"No autofix is offered because dict key/value evaluation order can differ."
|
|
117
118
|
),
|
|
118
119
|
(
|
|
119
120
|
"Attribute projections can invoke properties or descriptors, so reviewers should keep the loop "
|
|
@@ -675,7 +676,7 @@ def _owner_bindings(owner: _Callable, namespace_observers: frozenset[int]) -> _O
|
|
|
675
676
|
def _namespace_observer_calls(context: PythonFileContext) -> frozenset[int]:
|
|
676
677
|
observers = {
|
|
677
678
|
"builtins": {"locals", "vars", "eval", "exec"},
|
|
678
|
-
"inspect": {"currentframe"},
|
|
679
|
+
"inspect": {"currentframe", "stack", "trace", "getouterframes", "getinnerframes", "getargvalues"},
|
|
679
680
|
"sys": {"_getframe"},
|
|
680
681
|
}
|
|
681
682
|
# Explicit aliases remain conservative exclusions even when another scope shadows them.
|
|
@@ -686,14 +687,21 @@ def _namespace_observer_calls(context: PythonFileContext) -> frozenset[int]:
|
|
|
686
687
|
if alias.name in observers:
|
|
687
688
|
modules[alias.asname or alias.name].update(observers[alias.name])
|
|
688
689
|
for node in context.nodes(ast.ImportFrom):
|
|
689
|
-
|
|
690
|
-
continue
|
|
691
|
-
symbols.update(alias.asname or alias.name for alias in node.names if alias.name in observers[node.module])
|
|
690
|
+
symbols.update(_observer_import_symbols(node, observers))
|
|
692
691
|
return frozenset(
|
|
693
692
|
id(call) for call in context.nodes(ast.Call) if _is_namespace_observer(call.func, symbols, modules)
|
|
694
693
|
)
|
|
695
694
|
|
|
696
695
|
|
|
696
|
+
def _observer_import_symbols(node: ast.ImportFrom, observers: dict[str, set[str]]) -> set[str]:
|
|
697
|
+
if node.level or node.module not in observers:
|
|
698
|
+
return set()
|
|
699
|
+
# These inspect observers are public wildcard exports; sys._getframe is not.
|
|
700
|
+
if node.module == "inspect" and any(alias.name == "*" for alias in node.names):
|
|
701
|
+
return observers["inspect"]
|
|
702
|
+
return {alias.asname or alias.name for alias in node.names if alias.name in observers[node.module]}
|
|
703
|
+
|
|
704
|
+
|
|
697
705
|
def _is_namespace_observer(function: ast.expr, symbols: set[str], modules: dict[str, set[str]]) -> bool:
|
|
698
706
|
match function:
|
|
699
707
|
case ast.Name(id=name):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/_analysis_session.py
RENAMED
|
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
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_prose_budget.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_test_composition.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/_test_provenance.py
RENAMED
|
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
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/mock_without_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_comment_cruft.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_dunder_all.py
RENAMED
|
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
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_secret_in_log.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/no_select_star.py
RENAMED
|
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
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/over_mocked_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_class_row.py
RENAMED
|
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
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_or_pattern.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/prefer_str_enum.py
RENAMED
|
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
|
{sarj_python_lint-1.25.1 → sarj_python_lint-1.25.2}/src/sarj_python_lint/rules/unused_mock_setup.py
RENAMED
|
File without changes
|
|
File without changes
|