sarj-python-lint 1.44.0__tar.gz → 1.44.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.44.0 → sarj_python_lint-1.44.1}/PKG-INFO +1 -1
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/pyproject.toml +1 -1
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +119 -28
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/.gitignore +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/LICENSE +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/README.md +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_source.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/interpreter_argv.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_closed_helpers.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_exports.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_inert_model_annotation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_namespace_access.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_pydantic_field_contract.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_resolved_operation_signature.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_static_json_alias.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_type_guard_symbols.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/duplicate_adjacent_exception_handler.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/duplicate_closed_pure_helper.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_async_function_cache.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_conflicting_pydantic_alias_validation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_contradictory_type_guard.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_fixed_sleep_in_loop.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_impossible_pydantic_field_bounds.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_interpreter_source_arguments.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_invalid_pydantic_bypass.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_loguru_exc_info.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_loguru_printf_format.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_partial_type_is.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_unknown_pydantic_validator_field.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_declarative_batch_validation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_discriminated_model_union.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/redundant_test_constructor_forwarder.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/repeated_unimplemented_test_contract.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_injectable_retry_sleep.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/test_without_explicit_oracle.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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.44.
|
|
3
|
+
Version: 1.44.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/
|
|
@@ -31,7 +31,16 @@ _FUNC_NODES = (ast.FunctionDef, ast.AsyncFunctionDef)
|
|
|
31
31
|
|
|
32
32
|
class _FixtureDecorators(NamedTuple):
|
|
33
33
|
names: frozenset[str]
|
|
34
|
-
roots:
|
|
34
|
+
roots: dict[str, str]
|
|
35
|
+
modified: frozenset[str]
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class _FixtureFunction(NamedTuple):
|
|
39
|
+
node: ast.FunctionDef | ast.AsyncFunctionDef
|
|
40
|
+
owner: ast.ClassDef | None
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
_NO_FIXTURE_DECORATORS = _FixtureDecorators(frozenset(), {}, frozenset())
|
|
35
44
|
|
|
36
45
|
|
|
37
46
|
class _TupleResult(NamedTuple):
|
|
@@ -58,6 +67,8 @@ class PytestFixtureReturnsBareTuple(Rule):
|
|
|
58
67
|
category=RuleCategory.TESTING,
|
|
59
68
|
limitations=(
|
|
60
69
|
"Only pytest and pytest-asyncio fixtures in test paths are analyzed.",
|
|
70
|
+
"Decorator identity follows direct absolute imports and preceding module/class bindings; dynamic provider aliases and plugin registration are not inferred.",
|
|
71
|
+
"Explicit writes to a proven provider's fixture attribute invalidate later module imports, including through executed class bodies; arbitrary call effects and assignment aliases are not inferred.",
|
|
61
72
|
"Factory closures, single-field tuples, starred tuple literals, and variadic tuple annotations are allowed.",
|
|
62
73
|
"Homogeneous variadic tuple annotations are treated as sequences and excluded; fixed domain tuple protocols require an exact suppression.",
|
|
63
74
|
),
|
|
@@ -142,9 +153,12 @@ class PytestFixtureReturnsBareTuple(Rule):
|
|
|
142
153
|
|
|
143
154
|
def _bare_tuple_results(tree: ast.Module) -> list[_TupleResult]:
|
|
144
155
|
hits: list[_TupleResult] = []
|
|
145
|
-
for node in _discoverable_functions(tree):
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
for node, owner in _discoverable_functions(tree):
|
|
157
|
+
if not node.decorator_list:
|
|
158
|
+
continue
|
|
159
|
+
fixture_names = _fixture_decorator_names(tree, before_line=node.lineno, owner=owner)
|
|
160
|
+
fixture_name = _fixture_name(node, fixture_names)
|
|
161
|
+
if fixture_name is None:
|
|
148
162
|
continue
|
|
149
163
|
aliases = _type_aliases(tree, before_line=node.lineno)
|
|
150
164
|
has_yield = _has_own_yield(node)
|
|
@@ -160,7 +174,7 @@ def _bare_tuple_results(tree: ast.Module) -> list[_TupleResult]:
|
|
|
160
174
|
hits.append(
|
|
161
175
|
_TupleResult(
|
|
162
176
|
first.expression,
|
|
163
|
-
|
|
177
|
+
fixture_name,
|
|
164
178
|
tuple(sorted({result.field_counts[0] for result in results})),
|
|
165
179
|
)
|
|
166
180
|
)
|
|
@@ -176,31 +190,80 @@ def _bare_tuple_results(tree: ast.Module) -> list[_TupleResult]:
|
|
|
176
190
|
)
|
|
177
191
|
>= _MIN_FIELDS
|
|
178
192
|
):
|
|
179
|
-
hits.append(_TupleResult(node.returns,
|
|
193
|
+
hits.append(_TupleResult(node.returns, fixture_name, (arity,)))
|
|
180
194
|
return hits
|
|
181
195
|
|
|
182
196
|
|
|
183
|
-
def _discoverable_functions(tree: ast.Module) -> tuple[
|
|
184
|
-
functions: list[
|
|
197
|
+
def _discoverable_functions(tree: ast.Module) -> tuple[_FixtureFunction, ...]:
|
|
198
|
+
functions: list[_FixtureFunction] = []
|
|
185
199
|
for statement in tree.body:
|
|
186
200
|
if isinstance(statement, _FUNC_NODES):
|
|
187
|
-
functions.append(statement)
|
|
201
|
+
functions.append(_FixtureFunction(statement, None))
|
|
188
202
|
elif isinstance(statement, ast.ClassDef):
|
|
189
|
-
functions.extend(
|
|
203
|
+
functions.extend(
|
|
204
|
+
_FixtureFunction(member, statement) for member in statement.body if isinstance(member, _FUNC_NODES)
|
|
205
|
+
)
|
|
190
206
|
return tuple(functions)
|
|
191
207
|
|
|
192
208
|
|
|
193
|
-
def _fixture_decorator_names(tree: ast.Module, *, before_line: int) -> _FixtureDecorators:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
209
|
+
def _fixture_decorator_names(tree: ast.Module, *, before_line: int, owner: ast.ClassDef | None) -> _FixtureDecorators:
|
|
210
|
+
module = _decorators_before(tree.body, before_line=owner.lineno if owner else before_line)
|
|
211
|
+
return module if owner is None else _decorators_before(owner.body, before_line=before_line, inherited=module)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
def _decorators_before(
|
|
215
|
+
statements: list[ast.stmt],
|
|
216
|
+
*,
|
|
217
|
+
before_line: int,
|
|
218
|
+
inherited: _FixtureDecorators = _NO_FIXTURE_DECORATORS,
|
|
219
|
+
) -> _FixtureDecorators:
|
|
220
|
+
names = set(inherited.names)
|
|
221
|
+
roots = dict(inherited.roots)
|
|
222
|
+
modified = set(inherited.modified)
|
|
223
|
+
for statement in statements:
|
|
197
224
|
if statement.lineno >= before_line:
|
|
198
225
|
break
|
|
226
|
+
modified.update(
|
|
227
|
+
_provider_modifications(statement, _FixtureDecorators(frozenset(names), roots, frozenset(modified)))
|
|
228
|
+
)
|
|
199
229
|
rebound = _bound_names(statement)
|
|
200
230
|
names.difference_update(rebound)
|
|
201
|
-
roots.
|
|
202
|
-
|
|
203
|
-
|
|
231
|
+
roots = {name: provider for name, provider in roots.items() if name not in rebound and provider not in modified}
|
|
232
|
+
if isinstance(statement, ast.Delete):
|
|
233
|
+
# Deleting a class binding restores lookup in the module namespace.
|
|
234
|
+
names.update(rebound & inherited.names)
|
|
235
|
+
roots.update(
|
|
236
|
+
(name, provider)
|
|
237
|
+
for name, provider in inherited.roots.items()
|
|
238
|
+
if name in rebound and provider not in modified
|
|
239
|
+
)
|
|
240
|
+
_collect_fixture_imports(statement, names, roots, modified)
|
|
241
|
+
return _FixtureDecorators(frozenset(names), roots, frozenset(modified))
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
def _provider_modifications(statement: ast.stmt, state: _FixtureDecorators) -> frozenset[str]:
|
|
245
|
+
if isinstance(statement, ast.ClassDef):
|
|
246
|
+
# Class bodies execute immediately; their local bindings stay local, but
|
|
247
|
+
# writes through imported provider modules affect subsequent decorators.
|
|
248
|
+
return _decorators_before(
|
|
249
|
+
statement.body,
|
|
250
|
+
before_line=(statement.end_lineno or statement.lineno) + 1,
|
|
251
|
+
inherited=state,
|
|
252
|
+
).modified
|
|
253
|
+
return frozenset(state.roots[name] for name in _replaced_fixture_attributes(statement) if name in state.roots)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def _replaced_fixture_attributes(statement: ast.stmt) -> set[str]:
|
|
257
|
+
if isinstance(statement, (*_FUNC_NODES, ast.ClassDef)):
|
|
258
|
+
return set()
|
|
259
|
+
return {
|
|
260
|
+
node.value.id
|
|
261
|
+
for node in walk_ast(statement)
|
|
262
|
+
if isinstance(node, ast.Attribute)
|
|
263
|
+
and node.attr == _FIXTURE
|
|
264
|
+
and isinstance(node.value, ast.Name)
|
|
265
|
+
and isinstance(node.ctx, (ast.Store, ast.Del))
|
|
266
|
+
}
|
|
204
267
|
|
|
205
268
|
|
|
206
269
|
def _bound_names(statement: ast.stmt) -> set[str]:
|
|
@@ -210,7 +273,12 @@ def _bound_names(statement: ast.stmt) -> set[str]:
|
|
|
210
273
|
case ast.FunctionDef() | ast.AsyncFunctionDef() | ast.ClassDef():
|
|
211
274
|
return {statement.name}
|
|
212
275
|
case ast.Delete(targets=targets):
|
|
213
|
-
return {
|
|
276
|
+
return {
|
|
277
|
+
node.id
|
|
278
|
+
for target in targets
|
|
279
|
+
for node in walk_ast(target)
|
|
280
|
+
if isinstance(node, ast.Name) and isinstance(node.ctx, ast.Del)
|
|
281
|
+
}
|
|
214
282
|
case _:
|
|
215
283
|
return {
|
|
216
284
|
node.id
|
|
@@ -219,14 +287,26 @@ def _bound_names(statement: ast.stmt) -> set[str]:
|
|
|
219
287
|
}
|
|
220
288
|
|
|
221
289
|
|
|
222
|
-
def
|
|
290
|
+
def _fixture_name(
|
|
223
291
|
node: ast.FunctionDef | ast.AsyncFunctionDef,
|
|
224
292
|
fixture_imports: _FixtureDecorators,
|
|
225
|
-
) ->
|
|
226
|
-
|
|
293
|
+
) -> str | None:
|
|
294
|
+
for decorator in node.decorator_list:
|
|
295
|
+
if not _names_fixture(decorator, fixture_imports.names, fixture_imports.roots):
|
|
296
|
+
continue
|
|
297
|
+
if isinstance(decorator, ast.Call):
|
|
298
|
+
for keyword in decorator.keywords:
|
|
299
|
+
if (
|
|
300
|
+
keyword.arg == "name"
|
|
301
|
+
and isinstance(keyword.value, ast.Constant)
|
|
302
|
+
and isinstance(keyword.value.value, str)
|
|
303
|
+
):
|
|
304
|
+
return keyword.value.value or node.name
|
|
305
|
+
return node.name
|
|
306
|
+
return None
|
|
227
307
|
|
|
228
308
|
|
|
229
|
-
def _names_fixture(dec: ast.expr, fixture_names: frozenset[str], fixture_roots:
|
|
309
|
+
def _names_fixture(dec: ast.expr, fixture_names: frozenset[str], fixture_roots: dict[str, str]) -> bool:
|
|
230
310
|
# `@pytest.fixture`, `@pytest.fixture(scope=...)`, `@fixture`, `@pytest_asyncio.fixture`.
|
|
231
311
|
target = dec.func if isinstance(dec, ast.Call) else dec
|
|
232
312
|
if isinstance(target, ast.Attribute):
|
|
@@ -458,15 +538,26 @@ def _bare_tuple_arity(value: ast.expr) -> int:
|
|
|
458
538
|
return len(value.elts)
|
|
459
539
|
|
|
460
540
|
|
|
461
|
-
def _collect_fixture_imports(statement: ast.stmt, names: set[str], roots: set[str]) -> None:
|
|
541
|
+
def _collect_fixture_imports(statement: ast.stmt, names: set[str], roots: dict[str, str], modified: set[str]) -> None:
|
|
462
542
|
if isinstance(statement, ast.Import):
|
|
463
543
|
for alias in statement.names:
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
544
|
+
local = alias.asname or alias.name.split(".")[0]
|
|
545
|
+
roots.pop(local, None)
|
|
546
|
+
names.discard(local)
|
|
547
|
+
if alias.name in {"pytest", "pytest_asyncio"} and alias.name not in modified:
|
|
548
|
+
roots[local] = alias.name
|
|
549
|
+
elif isinstance(statement, ast.ImportFrom):
|
|
467
550
|
for alias in statement.names:
|
|
468
|
-
|
|
469
|
-
|
|
551
|
+
local = alias.asname or alias.name
|
|
552
|
+
roots.pop(local, None)
|
|
553
|
+
names.discard(local)
|
|
554
|
+
if (
|
|
555
|
+
statement.level == 0
|
|
556
|
+
and statement.module in {"pytest", "pytest_asyncio"}
|
|
557
|
+
and statement.module not in modified
|
|
558
|
+
and alias.name == "fixture"
|
|
559
|
+
):
|
|
560
|
+
names.add(local)
|
|
470
561
|
|
|
471
562
|
|
|
472
563
|
def _string_tuple_arity(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/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.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_closed_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_namespace_access.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/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.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_static_json_alias.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/_test_composition.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/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
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_partial_type_is.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
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/no_secret_in_log.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/over_mocked_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.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.44.0 → sarj_python_lint-1.44.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.44.0 → sarj_python_lint-1.44.1}/src/sarj_python_lint/rules/unused_mock_setup.py
RENAMED
|
File without changes
|
|
File without changes
|