sarj-python-lint 1.29.0__tar.gz → 1.29.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.29.0 → sarj_python_lint-1.29.1}/PKG-INFO +1 -1
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/pyproject.toml +1 -1
- sarj_python_lint-1.29.1/src/sarj_python_lint/rules/_exports.py +27 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_pytest.py +16 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +2 -12
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +2 -24
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +2 -12
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_generic_single_export_module.py +2 -23
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/.gitignore +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/LICENSE +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/README.md +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_source.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/interpreter_argv.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_closed_helpers.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_namespace_access.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_pydantic_field_contract.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/duplicate_adjacent_exception_handler.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/duplicate_closed_pure_helper.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_conflicting_pydantic_alias_validation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_fixed_sleep_in_loop.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_impossible_pydantic_field_bounds.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_interpreter_source_arguments.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_unknown_pydantic_validator_field.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/redundant_test_constructor_forwarder.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/repeated_unimplemented_test_contract.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_injectable_retry_sleep.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.
|
|
3
|
+
Version: 1.29.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/
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import ast
|
|
4
|
+
|
|
5
|
+
from sarj_python_lint.rules._ast_index import walk
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def mentions_dunder_all(node: ast.AST) -> bool:
|
|
9
|
+
for child in walk(node):
|
|
10
|
+
match child:
|
|
11
|
+
case ast.Name(id="__all__"):
|
|
12
|
+
return True
|
|
13
|
+
case ast.alias() if (child.asname or child.name).split(".")[0] == "__all__":
|
|
14
|
+
return True
|
|
15
|
+
case ast.FunctionDef() | ast.AsyncFunctionDef() | ast.ClassDef() if child.name == "__all__":
|
|
16
|
+
return True
|
|
17
|
+
case ast.arg(arg="__all__") | ast.ExceptHandler(name="__all__"):
|
|
18
|
+
return True
|
|
19
|
+
case ast.MatchAs() | ast.MatchStar() if child.name == "__all__":
|
|
20
|
+
return True
|
|
21
|
+
case ast.MatchMapping(rest="__all__"):
|
|
22
|
+
return True
|
|
23
|
+
case ast.Global() | ast.Nonlocal() if "__all__" in child.names:
|
|
24
|
+
return True
|
|
25
|
+
case _:
|
|
26
|
+
pass
|
|
27
|
+
return False
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import ast
|
|
4
|
+
from typing import TYPE_CHECKING
|
|
4
5
|
|
|
5
6
|
from sarj_python_lint.rules._ast_index import walk
|
|
6
7
|
|
|
7
8
|
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from collections.abc import Iterator
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def collected_tests(statements: list[ast.stmt]) -> Iterator[ast.FunctionDef | ast.AsyncFunctionDef]:
|
|
14
|
+
for statement in statements:
|
|
15
|
+
match statement:
|
|
16
|
+
case ast.FunctionDef() | ast.AsyncFunctionDef() if statement.name.startswith("test"):
|
|
17
|
+
yield statement
|
|
18
|
+
case ast.ClassDef() if statement.name.startswith("Test"):
|
|
19
|
+
yield from collected_tests(statement.body)
|
|
20
|
+
case _:
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
8
24
|
# The pytest-benchmark fixture: the test measures time, it does not verify.
|
|
9
25
|
_BENCHMARK = "benchmark"
|
|
10
26
|
|
|
@@ -20,6 +20,7 @@ from sarj_python_lint.rule_base import (
|
|
|
20
20
|
)
|
|
21
21
|
from sarj_python_lint.rules._ast_index import walk as walk_ast
|
|
22
22
|
from sarj_python_lint.rules._imports import ImportIndex
|
|
23
|
+
from sarj_python_lint.rules._pytest import collected_tests
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
if TYPE_CHECKING:
|
|
@@ -224,24 +225,13 @@ class AsyncMockCallWithoutAwaitAssertion(Rule):
|
|
|
224
225
|
severity=Severity.WARNING,
|
|
225
226
|
message="AsyncMock call assertions do not prove awaiting; keep this assertion and add an await assertion",
|
|
226
227
|
)
|
|
227
|
-
for test in
|
|
228
|
+
for test in collected_tests(tree.body)
|
|
228
229
|
if not _is_pytest_fixture(test, imports)
|
|
229
230
|
for call in _uncovered_calls(_test_imports(imports, test), test, writes)
|
|
230
231
|
if not is_suppressed(lines, call.lineno, self.code)
|
|
231
232
|
]
|
|
232
233
|
|
|
233
234
|
|
|
234
|
-
def _collected_tests(statements: list[ast.stmt]) -> Iterator[_TestFunction]:
|
|
235
|
-
for statement in statements:
|
|
236
|
-
match statement:
|
|
237
|
-
case ast.FunctionDef() | ast.AsyncFunctionDef() if statement.name.startswith("test"):
|
|
238
|
-
yield statement
|
|
239
|
-
case ast.ClassDef() if statement.name.startswith("Test"):
|
|
240
|
-
yield from _collected_tests(statement.body)
|
|
241
|
-
case _:
|
|
242
|
-
pass
|
|
243
|
-
|
|
244
|
-
|
|
245
235
|
def _is_pytest_fixture(test: _TestFunction, imports: ImportIndex) -> bool:
|
|
246
236
|
return any(
|
|
247
237
|
imports.resolved_qualified_name(decorator.func if isinstance(decorator, ast.Call) else decorator)
|
|
@@ -14,7 +14,7 @@ from sarj_python_lint.rule_base import (
|
|
|
14
14
|
RuleDocumentation,
|
|
15
15
|
RuleExample,
|
|
16
16
|
)
|
|
17
|
-
from sarj_python_lint.rules.
|
|
17
|
+
from sarj_python_lint.rules._exports import mentions_dunder_all
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
if TYPE_CHECKING:
|
|
@@ -140,7 +140,7 @@ def _has_other_dunder_all_rebindings(tree: ast.Module, declaration: ast.stmt) ->
|
|
|
140
140
|
continue
|
|
141
141
|
if _is_supported_dunder_all_growth(statement):
|
|
142
142
|
continue
|
|
143
|
-
if
|
|
143
|
+
if mentions_dunder_all(statement):
|
|
144
144
|
return True
|
|
145
145
|
return False
|
|
146
146
|
|
|
@@ -155,28 +155,6 @@ def _is_supported_dunder_all_growth(statement: ast.stmt) -> bool:
|
|
|
155
155
|
return False
|
|
156
156
|
|
|
157
157
|
|
|
158
|
-
def _mentions_dunder_all(node: ast.AST) -> bool:
|
|
159
|
-
for child in walk_ast(node):
|
|
160
|
-
match child:
|
|
161
|
-
case ast.Name(id="__all__"):
|
|
162
|
-
return True
|
|
163
|
-
case ast.alias() if (child.asname or child.name).split(".")[0] == "__all__":
|
|
164
|
-
return True
|
|
165
|
-
case ast.FunctionDef() | ast.AsyncFunctionDef() | ast.ClassDef() if child.name == "__all__":
|
|
166
|
-
return True
|
|
167
|
-
case ast.arg(arg="__all__") | ast.ExceptHandler(name="__all__"):
|
|
168
|
-
return True
|
|
169
|
-
case ast.MatchAs() | ast.MatchStar() if child.name == "__all__":
|
|
170
|
-
return True
|
|
171
|
-
case ast.MatchMapping(rest="__all__"):
|
|
172
|
-
return True
|
|
173
|
-
case ast.Global() | ast.Nonlocal() if "__all__" in child.names:
|
|
174
|
-
return True
|
|
175
|
-
case _:
|
|
176
|
-
pass
|
|
177
|
-
return False
|
|
178
|
-
|
|
179
|
-
|
|
180
158
|
def _literal_elements(statement: ast.stmt) -> list[_LiteralElement] | None:
|
|
181
159
|
value: ast.expr | None
|
|
182
160
|
match statement:
|
|
@@ -17,6 +17,7 @@ from sarj_python_lint.rule_base import (
|
|
|
17
17
|
RuleExample,
|
|
18
18
|
Severity,
|
|
19
19
|
)
|
|
20
|
+
from sarj_python_lint.rules._pytest import collected_tests
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
if TYPE_CHECKING:
|
|
@@ -144,7 +145,7 @@ class NoFixedSleepBeforeAssert(Rule):
|
|
|
144
145
|
imports = context.imports
|
|
145
146
|
diagnostics = [
|
|
146
147
|
Diagnostic(path=path, line=statement.lineno, col=statement.col_offset + 1, code=self.code, message=_MESSAGE)
|
|
147
|
-
for test in
|
|
148
|
+
for test in collected_tests(tree.body)
|
|
148
149
|
for statement, following in _adjacent_statements(test.body)
|
|
149
150
|
if isinstance(following, ast.Assert) and _is_fixed_sleep(statement, test, imports)
|
|
150
151
|
]
|
|
@@ -155,17 +156,6 @@ def _is_collected_test_module(path: Path) -> bool:
|
|
|
155
156
|
return path.suffix == ".py" and (path.stem.startswith("test_") or path.stem.endswith("_test"))
|
|
156
157
|
|
|
157
158
|
|
|
158
|
-
def _collected_tests(statements: list[ast.stmt]) -> Iterator[_TestFunction]:
|
|
159
|
-
for statement in statements:
|
|
160
|
-
match statement:
|
|
161
|
-
case ast.FunctionDef() | ast.AsyncFunctionDef() if statement.name.startswith("test"):
|
|
162
|
-
yield statement
|
|
163
|
-
case ast.ClassDef() if statement.name.startswith("Test"):
|
|
164
|
-
yield from _collected_tests(statement.body)
|
|
165
|
-
case _:
|
|
166
|
-
pass
|
|
167
|
-
|
|
168
|
-
|
|
169
159
|
def _adjacent_statements(block: list[ast.stmt]) -> Iterator[tuple[ast.stmt, ast.stmt]]:
|
|
170
160
|
yield from pairwise(block)
|
|
171
161
|
for statement in block:
|
|
@@ -15,6 +15,7 @@ from sarj_python_lint.rule_base import (
|
|
|
15
15
|
RuleExample,
|
|
16
16
|
)
|
|
17
17
|
from sarj_python_lint.rules._ast_index import walk as walk_ast
|
|
18
|
+
from sarj_python_lint.rules._exports import mentions_dunder_all
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
if TYPE_CHECKING:
|
|
@@ -145,7 +146,7 @@ def _has_additional_public_export(tree: ast.Module, primary_name: str) -> bool:
|
|
|
145
146
|
|
|
146
147
|
|
|
147
148
|
def _dunder_all_matches_primary(tree: ast.Module, primary_name: str) -> bool:
|
|
148
|
-
owners = [statement for statement in tree.body if
|
|
149
|
+
owners = [statement for statement in tree.body if mentions_dunder_all(statement)]
|
|
149
150
|
if not owners:
|
|
150
151
|
return True
|
|
151
152
|
if len(owners) != 1:
|
|
@@ -163,28 +164,6 @@ def _dunder_all_matches_primary(tree: ast.Module, primary_name: str) -> bool:
|
|
|
163
164
|
return isinstance(entry, ast.Constant) and entry.value == primary_name
|
|
164
165
|
|
|
165
166
|
|
|
166
|
-
def _mentions_dunder_all(node: ast.AST) -> bool:
|
|
167
|
-
for child in walk_ast(node):
|
|
168
|
-
match child:
|
|
169
|
-
case ast.Name(id="__all__"):
|
|
170
|
-
return True
|
|
171
|
-
case ast.alias() if (child.asname or child.name).split(".")[0] == "__all__":
|
|
172
|
-
return True
|
|
173
|
-
case ast.FunctionDef() | ast.AsyncFunctionDef() | ast.ClassDef() if child.name == "__all__":
|
|
174
|
-
return True
|
|
175
|
-
case ast.arg(arg="__all__") | ast.ExceptHandler(name="__all__"):
|
|
176
|
-
return True
|
|
177
|
-
case ast.MatchAs() | ast.MatchStar() if child.name == "__all__":
|
|
178
|
-
return True
|
|
179
|
-
case ast.MatchMapping(rest="__all__"):
|
|
180
|
-
return True
|
|
181
|
-
case ast.Global() | ast.Nonlocal() if "__all__" in child.names:
|
|
182
|
-
return True
|
|
183
|
-
case _:
|
|
184
|
-
pass
|
|
185
|
-
return False
|
|
186
|
-
|
|
187
|
-
|
|
188
167
|
def _annotation_name(node: ast.expr) -> str:
|
|
189
168
|
match node:
|
|
190
169
|
case ast.Name(id=name) | ast.Attribute(attr=name):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_closed_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_namespace_access.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/_test_composition.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.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
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/no_secret_in_log.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/over_mocked_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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
|
{sarj_python_lint-1.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.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.29.0 → sarj_python_lint-1.29.1}/src/sarj_python_lint/rules/unused_mock_setup.py
RENAMED
|
File without changes
|
|
File without changes
|