sarj-python-lint 1.40.0__tar.gz → 1.40.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.40.0 → sarj_python_lint-1.40.1}/PKG-INFO +1 -1
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/pyproject.toml +1 -1
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_ast_index.py +20 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_resource_provenance.py +11 -2
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_async_function_cache.py +2 -22
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +3 -1
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +1 -19
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/.gitignore +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/LICENSE +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/README.md +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_source.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/interpreter_argv.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_closed_helpers.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_exports.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_inert_model_annotation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_namespace_access.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_pydantic_field_contract.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_resolved_operation_signature.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_static_json_alias.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/duplicate_adjacent_exception_handler.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/duplicate_closed_pure_helper.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_conflicting_pydantic_alias_validation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_fixed_sleep_in_loop.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_impossible_pydantic_field_bounds.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_interpreter_source_arguments.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_loguru_exc_info.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_loguru_printf_format.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_unknown_pydantic_validator_field.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_declarative_batch_validation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/redundant_test_constructor_forwarder.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/repeated_unimplemented_test_contract.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_injectable_retry_sleep.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/test_without_explicit_oracle.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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.40.
|
|
3
|
+
Version: 1.40.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/
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
@@ -33,6 +33,26 @@ def comprehension_results(node: ast.ListComp | ast.SetComp | ast.DictComp | ast.
|
|
|
33
33
|
return [child for child in children(node) if isinstance(child, ast.expr)]
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
def has_own_yield(function: ast.AsyncFunctionDef) -> bool:
|
|
37
|
+
pending: list[ast.AST] = list(function.body)
|
|
38
|
+
while pending:
|
|
39
|
+
match pending.pop():
|
|
40
|
+
case ast.Yield() | ast.YieldFrom():
|
|
41
|
+
return True
|
|
42
|
+
case ast.FunctionDef() | ast.AsyncFunctionDef() | ast.Lambda() as definition:
|
|
43
|
+
pending.extend(definition.args.defaults)
|
|
44
|
+
pending.extend(default for default in definition.args.kw_defaults if default is not None)
|
|
45
|
+
if not isinstance(definition, ast.Lambda):
|
|
46
|
+
pending.extend(definition.decorator_list)
|
|
47
|
+
case ast.ClassDef() as definition:
|
|
48
|
+
pending.extend(definition.bases)
|
|
49
|
+
pending.extend(keyword.value for keyword in definition.keywords)
|
|
50
|
+
pending.extend(definition.decorator_list)
|
|
51
|
+
case node:
|
|
52
|
+
pending.extend(children(node))
|
|
53
|
+
return False
|
|
54
|
+
|
|
55
|
+
|
|
36
56
|
def walk(node: ast.AST, *, index: NodeIndex | None = None) -> Iterator[ast.AST]:
|
|
37
57
|
if index is not None and index.tree is node:
|
|
38
58
|
yield from index.query((ast.AST,))
|
|
@@ -6,6 +6,7 @@ from functools import cached_property
|
|
|
6
6
|
from types import MappingProxyType
|
|
7
7
|
from typing import TYPE_CHECKING, final
|
|
8
8
|
|
|
9
|
+
from sarj_python_lint.rules._ast_index import has_own_yield
|
|
9
10
|
from sarj_python_lint.rules._namespace_access import dynamic_namespace_access
|
|
10
11
|
|
|
11
12
|
|
|
@@ -74,7 +75,7 @@ class ResourceProvenance:
|
|
|
74
75
|
self.reads[node.id].append(node)
|
|
75
76
|
|
|
76
77
|
for name in _bound_names(node):
|
|
77
|
-
self.bindings[self.
|
|
78
|
+
self.bindings[self._binding_scope(node)][name].append(node)
|
|
78
79
|
self.wildcard |= name == "*"
|
|
79
80
|
if isinstance(node, ast.Global | ast.Nonlocal):
|
|
80
81
|
self.external_bindings.update(node.names)
|
|
@@ -98,6 +99,14 @@ class ResourceProvenance:
|
|
|
98
99
|
parent = self.context.parents.get(parent)
|
|
99
100
|
return parent
|
|
100
101
|
|
|
102
|
+
def _binding_scope(self, node: ast.AST) -> ast.AST | None:
|
|
103
|
+
scope = self.scope(node)
|
|
104
|
+
parent = self.context.parents.get(node)
|
|
105
|
+
if isinstance(parent, ast.NamedExpr) and parent.target is node:
|
|
106
|
+
while isinstance(scope, ast.ListComp | ast.SetComp | ast.DictComp | ast.GeneratorExp):
|
|
107
|
+
scope = self.scope(scope)
|
|
108
|
+
return scope
|
|
109
|
+
|
|
101
110
|
def binding(self, name: str, at: ast.AST) -> ast.AST | None:
|
|
102
111
|
scope = self.scope(at)
|
|
103
112
|
while scope is not None:
|
|
@@ -251,7 +260,7 @@ class ResourceProvenance:
|
|
|
251
260
|
owner = self.context.parents.get(function)
|
|
252
261
|
if not isinstance(owner, ast.Module | ast.FunctionDef | ast.AsyncFunctionDef):
|
|
253
262
|
return None
|
|
254
|
-
if function.decorator_list or
|
|
263
|
+
if function.decorator_list or has_own_yield(function):
|
|
255
264
|
return None
|
|
256
265
|
if function not in self.async_contract_cache:
|
|
257
266
|
self.async_contract_cache[function] = self._async_aliases_untouched(function)
|
|
@@ -16,7 +16,7 @@ from sarj_python_lint.rule_base import (
|
|
|
16
16
|
Severity,
|
|
17
17
|
is_suppressed,
|
|
18
18
|
)
|
|
19
|
-
from sarj_python_lint.rules._ast_index import
|
|
19
|
+
from sarj_python_lint.rules._ast_index import has_own_yield
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
if TYPE_CHECKING:
|
|
@@ -94,7 +94,7 @@ class NoAsyncFunctionCache(Rule):
|
|
|
94
94
|
decorator = function.decorator_list[-1]
|
|
95
95
|
if (
|
|
96
96
|
not _is_coroutine_cache(decorator, context.imports, shadowed)
|
|
97
|
-
or
|
|
97
|
+
or has_own_yield(function)
|
|
98
98
|
or is_suppressed(context.source_lines, decorator.lineno, self.code)
|
|
99
99
|
):
|
|
100
100
|
continue
|
|
@@ -157,23 +157,3 @@ def _is_coroutine_cache(decorator: ast.expr, imports: ImportIndex, shadowed: fro
|
|
|
157
157
|
return size > 0
|
|
158
158
|
case _:
|
|
159
159
|
return False
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
def _has_own_yield(function: ast.AsyncFunctionDef) -> bool:
|
|
163
|
-
pending: list[ast.AST] = list(function.body)
|
|
164
|
-
while pending:
|
|
165
|
-
match pending.pop():
|
|
166
|
-
case ast.Yield() | ast.YieldFrom():
|
|
167
|
-
return True
|
|
168
|
-
case ast.FunctionDef() | ast.AsyncFunctionDef() | ast.Lambda() as definition:
|
|
169
|
-
pending.extend(definition.args.defaults)
|
|
170
|
-
pending.extend(default for default in definition.args.kw_defaults if default is not None)
|
|
171
|
-
if not isinstance(definition, ast.Lambda):
|
|
172
|
-
pending.extend(definition.decorator_list)
|
|
173
|
-
case ast.ClassDef() as definition:
|
|
174
|
-
pending.extend(definition.bases)
|
|
175
|
-
pending.extend(keyword.value for keyword in definition.keywords)
|
|
176
|
-
pending.extend(definition.decorator_list)
|
|
177
|
-
case node:
|
|
178
|
-
pending.extend(children(node))
|
|
179
|
-
return False
|
|
@@ -170,7 +170,9 @@ class PreferConstantTimeSecretCompare(Rule):
|
|
|
170
170
|
if _is_password_confirmation_pair(operands):
|
|
171
171
|
continue
|
|
172
172
|
scope = _enclosing_scope(comparison, parents, tree)
|
|
173
|
-
|
|
173
|
+
if id(scope) not in role_cache:
|
|
174
|
+
role_cache[id(scope)] = _roles_for_scope(scope, environment_names)
|
|
175
|
+
roles = role_cache[id(scope)]
|
|
174
176
|
position = (comparison.lineno, comparison.col_offset)
|
|
175
177
|
dominant_roles = _dominating_walrus_roles(comparison, parents, roles, position)
|
|
176
178
|
operand_roles = [_operand_role(operand, roles, position, dominant_roles) for operand in operands]
|
|
@@ -96,7 +96,7 @@ class PreferRequiredConstructorParameters(Rule):
|
|
|
96
96
|
continue
|
|
97
97
|
if method.decorator_list:
|
|
98
98
|
if provenance is None:
|
|
99
|
-
provenance =
|
|
99
|
+
provenance = ResourceProvenance(context)
|
|
100
100
|
if _is_overload(context, provenance, method):
|
|
101
101
|
continue
|
|
102
102
|
findings.extend(
|
|
@@ -134,24 +134,6 @@ def _scope(context: PythonFileContext, node: ast.AST) -> ast.AST | None:
|
|
|
134
134
|
return parent
|
|
135
135
|
|
|
136
136
|
|
|
137
|
-
def _overload_provenance(context: PythonFileContext) -> ResourceProvenance:
|
|
138
|
-
provenance = ResourceProvenance(context)
|
|
139
|
-
comprehensions = (ast.ListComp, ast.SetComp, ast.DictComp, ast.GeneratorExp)
|
|
140
|
-
for expression in context.nodes(ast.NamedExpr):
|
|
141
|
-
target = expression.target
|
|
142
|
-
original = provenance.scope(target)
|
|
143
|
-
if not isinstance(original, comprehensions):
|
|
144
|
-
continue
|
|
145
|
-
# Assignment expressions in comprehensions bind in the containing
|
|
146
|
-
# scope, unlike iteration targets, which stay comprehension-local.
|
|
147
|
-
containing = original
|
|
148
|
-
while isinstance(containing, comprehensions):
|
|
149
|
-
containing = provenance.scope(containing)
|
|
150
|
-
provenance.bindings[original][target.id].remove(target)
|
|
151
|
-
provenance.bindings[containing][target.id].append(target)
|
|
152
|
-
return provenance
|
|
153
|
-
|
|
154
|
-
|
|
155
137
|
def _binding(provenance: ResourceProvenance, name: str, at: ast.AST) -> ast.AST | None:
|
|
156
138
|
scope = provenance.scope(at)
|
|
157
139
|
deferred = False
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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.40.0 → sarj_python_lint-1.40.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.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_closed_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_namespace_access.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_static_json_alias.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/_test_composition.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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.40.0 → sarj_python_lint-1.40.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.40.0 → sarj_python_lint-1.40.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
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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
|
|
File without changes
|
|
File without changes
|
|
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.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/no_secret_in_log.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/over_mocked_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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.40.0 → sarj_python_lint-1.40.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
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.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
|
|
File without changes
|
{sarj_python_lint-1.40.0 → sarj_python_lint-1.40.1}/src/sarj_python_lint/rules/unused_mock_setup.py
RENAMED
|
File without changes
|
|
File without changes
|