sarj-python-lint 1.40.1__tar.gz → 1.40.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.40.1 → sarj_python_lint-1.40.2}/PKG-INFO +1 -1
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/pyproject.toml +1 -1
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +20 -10
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/.gitignore +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/LICENSE +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/README.md +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_source.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/interpreter_argv.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_closed_helpers.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_exports.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_inert_model_annotation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_namespace_access.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_pydantic_field_contract.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_resolved_operation_signature.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_static_json_alias.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/duplicate_adjacent_exception_handler.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/duplicate_closed_pure_helper.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_async_function_cache.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_conflicting_pydantic_alias_validation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_fixed_sleep_in_loop.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_impossible_pydantic_field_bounds.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_interpreter_source_arguments.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_loguru_exc_info.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_loguru_printf_format.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_unknown_pydantic_validator_field.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_declarative_batch_validation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/redundant_test_constructor_forwarder.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/repeated_unimplemented_test_contract.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_injectable_retry_sleep.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/test_without_explicit_oracle.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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.40.
|
|
3
|
+
Version: 1.40.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,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import ast
|
|
4
|
+
from collections import Counter
|
|
4
5
|
from dataclasses import dataclass
|
|
5
6
|
from pathlib import PurePosixPath
|
|
6
7
|
import re
|
|
@@ -710,7 +711,8 @@ def _unambiguous_exports(tree: ast.Module, imports: ImportIndex, facts: _TypeFac
|
|
|
710
711
|
assignments.setdefault(assignment.target, []).append(assignment)
|
|
711
712
|
# Imports are re-exports only when their binding is unambiguous; local
|
|
712
713
|
# aliases must have exactly one top-level assignment and no other writes.
|
|
713
|
-
|
|
714
|
+
bindings: Counter[str] = _binding_counts(tree) if assignments else Counter()
|
|
715
|
+
unique = {name for name, values in assignments.items() if len(values) == 1 and bindings.get(name, 0) == 1}
|
|
714
716
|
allowed = unique | set(imports.bindings)
|
|
715
717
|
return _TypeFacts(
|
|
716
718
|
{name: shape for name, shape in facts.raw_aliases.items() if name in allowed},
|
|
@@ -718,15 +720,23 @@ def _unambiguous_exports(tree: ast.Module, imports: ImportIndex, facts: _TypeFac
|
|
|
718
720
|
)
|
|
719
721
|
|
|
720
722
|
|
|
721
|
-
def
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
723
|
+
def _binding_counts(tree: ast.Module) -> Counter[str]:
|
|
724
|
+
bindings: Counter[str] = Counter()
|
|
725
|
+
for node in walk_ast(tree):
|
|
726
|
+
match node:
|
|
727
|
+
case (
|
|
728
|
+
ast.Name(id=name, ctx=ast.Store() | ast.Del())
|
|
729
|
+
| ast.arg(arg=name)
|
|
730
|
+
| ast.FunctionDef(name=name)
|
|
731
|
+
| ast.AsyncFunctionDef(name=name)
|
|
732
|
+
| ast.ClassDef(name=name)
|
|
733
|
+
):
|
|
734
|
+
bindings[name] += 1
|
|
735
|
+
case ast.alias(name=name, asname=alias):
|
|
736
|
+
bindings[alias or name.partition(".")[0]] += 1
|
|
737
|
+
case _:
|
|
738
|
+
continue
|
|
739
|
+
return bindings
|
|
730
740
|
|
|
731
741
|
|
|
732
742
|
def _imported_facts(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/interpreter_argv.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.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_closed_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_namespace_access.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_prose_budget.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_static_json_alias.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/_test_composition.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_loguru_exc_info.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.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/no_secret_in_log.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/over_mocked_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.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.40.1 → sarj_python_lint-1.40.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.1 → sarj_python_lint-1.40.2}/src/sarj_python_lint/rules/unused_mock_setup.py
RENAMED
|
File without changes
|
|
File without changes
|