sarj-python-lint 1.28.0__tar.gz → 1.28.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.28.0 → sarj_python_lint-1.28.1}/PKG-INFO +1 -1
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/pyproject.toml +1 -1
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/interpreter_argv.py +31 -4
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/.gitignore +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/LICENSE +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/README.md +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_source.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_closed_helpers.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/duplicate_adjacent_exception_handler.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/duplicate_closed_pure_helper.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_fixed_sleep_in_loop.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_interpreter_source_arguments.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/redundant_test_constructor_forwarder.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/repeated_unimplemented_test_contract.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_injectable_retry_sleep.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.28.0 → sarj_python_lint-1.28.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.28.
|
|
3
|
+
Version: 1.28.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.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/interpreter_argv.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from dataclasses import dataclass
|
|
3
|
+
from dataclasses import dataclass, field, replace
|
|
4
4
|
from pathlib import PurePosixPath
|
|
5
5
|
import re
|
|
6
6
|
from types import MappingProxyType
|
|
@@ -22,6 +22,8 @@ class InterpreterInvocation:
|
|
|
22
22
|
kind: ProgramKind
|
|
23
23
|
payload: str | None = None
|
|
24
24
|
forwarded: tuple[str, ...] = ()
|
|
25
|
+
# Runtime options do not change source-payload identity.
|
|
26
|
+
execution_options: frozenset[str] = field(default=frozenset[str](), compare=False)
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
@dataclass(frozen=True, slots=True)
|
|
@@ -374,15 +376,21 @@ def _short_options(
|
|
|
374
376
|
short_seen = False
|
|
375
377
|
bash_mode = shell_name == "bash"
|
|
376
378
|
validated_shell = shell_name in {"bash", "sh", "dash"}
|
|
379
|
+
execution_options: set[str] = set()
|
|
377
380
|
while index < len(arguments):
|
|
378
381
|
boundary = _external_boundary(arguments, index, plus_options=True)
|
|
379
382
|
if boundary is not None and command_mode:
|
|
380
383
|
index += int(arguments[index] in {"-", "--"})
|
|
381
384
|
if index >= len(arguments):
|
|
382
385
|
return InterpreterInvocation("unknown")
|
|
383
|
-
return InterpreterInvocation(
|
|
386
|
+
return InterpreterInvocation(
|
|
387
|
+
"shell", arguments[index], tuple(arguments[index + 2 :]), frozenset(execution_options)
|
|
388
|
+
)
|
|
384
389
|
if boundary is not None:
|
|
385
|
-
return
|
|
390
|
+
return replace(
|
|
391
|
+
InterpreterInvocation("stdin") if stdin_mode else boundary,
|
|
392
|
+
execution_options=frozenset(execution_options),
|
|
393
|
+
)
|
|
386
394
|
argument = arguments[index]
|
|
387
395
|
if argument.startswith("--"):
|
|
388
396
|
parsed = _long_option(arguments, index, shell_mode=shell_mode, bash_mode=bash_mode, short_seen=short_seen)
|
|
@@ -393,10 +401,29 @@ def _short_options(
|
|
|
393
401
|
)
|
|
394
402
|
if parsed.invocation is not None:
|
|
395
403
|
return parsed.invocation
|
|
404
|
+
_record_shell_execution_options(
|
|
405
|
+
execution_options, argument, arguments[index + 1 : index + parsed.consumed], shell_name=shell_name
|
|
406
|
+
)
|
|
396
407
|
stdin_mode = stdin_mode or parsed.stdin_mode
|
|
397
408
|
command_mode = command_mode or parsed.command_mode
|
|
398
409
|
index += parsed.consumed
|
|
399
|
-
return InterpreterInvocation("unknown" if command_mode else "stdin")
|
|
410
|
+
return InterpreterInvocation("unknown" if command_mode else "stdin", execution_options=frozenset(execution_options))
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
def _record_shell_execution_options(
|
|
414
|
+
options: set[str], argument: str, operands: Sequence[str], *, shell_name: str
|
|
415
|
+
) -> None:
|
|
416
|
+
if shell_name not in _SHELLS or argument.startswith("--"):
|
|
417
|
+
return
|
|
418
|
+
values = iter(operands)
|
|
419
|
+
for flag in argument[1:]:
|
|
420
|
+
name = "errexit" if flag == "e" else next(values, None) if flag == "o" else None
|
|
421
|
+
if name is None or name not in {"errexit", "pipefail"}:
|
|
422
|
+
continue
|
|
423
|
+
if argument.startswith("-"):
|
|
424
|
+
options.add(name)
|
|
425
|
+
else:
|
|
426
|
+
options.discard(name)
|
|
400
427
|
|
|
401
428
|
|
|
402
429
|
def _long_option(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/_analysis_session.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_closed_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.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.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/_test_composition.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.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.28.0 → sarj_python_lint-1.28.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.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_comment_cruft.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.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
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_secret_in_log.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/no_select_star.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/over_mocked_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.28.0 → sarj_python_lint-1.28.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.28.0 → sarj_python_lint-1.28.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.28.0 → sarj_python_lint-1.28.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.28.0 → sarj_python_lint-1.28.1}/src/sarj_python_lint/rules/unused_mock_setup.py
RENAMED
|
File without changes
|
|
File without changes
|