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