sarj-python-lint 1.110.0__tar.gz → 1.110.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.110.0 → sarj_python_lint-1.110.1}/PKG-INFO +1 -1
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/pyproject.toml +1 -1
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_match_type_dispatch.py +45 -5
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/.gitignore +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/LICENSE +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/README.md +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/__init__.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/__main__.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_analysis_session.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_aliases.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_annotations.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_comments.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_declared_contracts.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_declared_tests.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_docs.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_enums.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_exhaustiveness.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_inert.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_parameters.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_repeated.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_security.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_sql_projection.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_tests.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_closed_sql_literal.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_file_context.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_filesystem.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_fixes.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_parallel.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_prepared_sources.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_python_target.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_ratchet_cli.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_rule_descriptors.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_secret_names.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_source.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_version.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/application_logging.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/autofix.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/benchmark.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/cast_access.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/interpreter_argv.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/json_boundary.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/py.typed +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/ratchet.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rule_base.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rule_metadata.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/__init__.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_annotation_origins.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_annotation_semantics.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_ast_index.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_ast_names.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_ast_position.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_async_lifecycle.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_binding_inventory.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_closed_helpers.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_comment_narration.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_comments.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_contract_annotation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_copy_on_write.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_data_union_discriminator.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_declared_contracts.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_dict_key_views.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_docstrings.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_exports.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_fastapi.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_first_party.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_fixed_record.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_fixture_contracts.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_imports.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_inert_model_annotation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_inherited_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_local_alias_fix.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_local_source.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_logging.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_loguru.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_mapping_shape_callbacks.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_namespace_access.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_native_namespace_capability.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_native_object_contracts.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_nominal_project.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_numeric_proof.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_opaque_contracts.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_paths.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_postgres.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_postgres_ctas.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_project_index.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_prose_budget.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_pydantic_field_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_pytest.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_pytest_contract_parameters.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_registry.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_resolved_operation_signature.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_resource_provenance.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_route_shapes.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_runtime_bindings.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_runtime_names.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_runtime_registry.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_service_http_callbacks.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_set_fields.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_sql.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_sql_aggregate_identity.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_sql_explain.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_sql_policy_source.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_static_json_alias.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_store_sql.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_store_writes.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_suppression_comments.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_test_assertions.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_test_composition.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_test_provenance.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_transactional_sql.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_type_guard_symbols.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/async_cleanup_registered_synchronously.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/async_executor_shutdown.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/async_mock_call_without_await_assertion.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/async_subprocess_cancellation_cleanup.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/cancel_owned_task_without_join.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/complex_postgres_query_requires_architecture_review.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/defect_xfail_requires_explicit_strict.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/delete_route_returns_no_content.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/docstring_args_restate_signature.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/docstring_returns_restate_signature.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/duplicate_adjacent_exception_handler.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/duplicate_closed_pure_helper.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/duplicate_pytest_fixture_params.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/excessive_commentary.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/failed_probe_zero_threshold.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/fakes_in_shared_location.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/fastapi_class_router_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/fastapi_explicit_openapi_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/iac_source_coupled_test.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/invalid_pydantic_field_default.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/mock_without_spec.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/named_record_at_boundaries.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/nan_hidden_by_builtin_min.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/negative_only_http_status_assertion.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_analytical_aggregation_in_postgres_store.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_any_mapping_types.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_async_client_in_constructor.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_async_function_cache.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_before_validator_input_mutation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_blanket_suppression.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_broad_keyword_capture.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_comment_cruft.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_conflicting_pydantic_alias_validation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_conftest_test_module_import.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_contradictory_type_guard.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_copied_inherited_docstring.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_cors_wildcard_with_credentials.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_create_verb_in_post_path.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_custom_control_flow_exception.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_database_programmability.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_defaulted_environment_setting.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_delete_statement.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_discarded_tagged_outcome.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_discarded_validation_result.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_dual_shape_model_field_reader.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_dunder_all.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_duplicate_dunder_all_entry.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_duplicate_field_validator_body.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_dynamic_builtins.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_exception_text_in_500_detail.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_excessive_cognitive_complexity.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_fastapi_on_event.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_file_level_escape_hatch_suppression.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_first_party_private_import.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_fixed_sleep_before_assert.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_fixed_sleep_in_loop.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_folded_bad_request_not_found.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_frozen_after_validator_field_write.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_generic_json_parser.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_generic_single_export_module.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_hasattr.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_hidden_constructor_fallback.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_impossible_pydantic_field_bounds.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_injected_module_loader.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_input_model_mutation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_interpreter_source_arguments.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_invalid_argument_name_suppression.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_invalid_pydantic_bypass.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_invalid_pydantic_validator_return.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_loguru_exc_info.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_loguru_printf_format.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_mocked_pydantic_value_object.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_mutating_container_transform.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_mutating_input_with_result.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_nested_pydantic_field_validator.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_nullable_dependency_fallback.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_offset_pagination.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_partial_type_is.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_positional_psycopg_row_escape.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_psycopg_execution_in_loop.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_psycopg_execution_outside_injected_owner.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_random_uuid_in_sql.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_raw_connection_in_tests.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_raw_source_text_test_oracle.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_recording_store.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_redundant_attribute_unpacking.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_redundant_literal_description.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_redundant_local_alias.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_redundant_module_alias_exports.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_redundant_sql_alias.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_repeated_string_literal.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_repeated_test_body.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_restated_comment.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_secret_in_log.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_select_star.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_service_behavior_in_settings.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_shallow_container_type_guard.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_shallow_record_type_guard.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_shared_mutable_default.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_slash_collection_root_under_prefix.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_string_concat_in_loop.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_swallowed_asyncio_cancellation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_sys_path_mutation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_tautological_expect.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_test_comments.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_test_method_grafting.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_typed_doc_sections.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_unique_violation_message_match.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_unknown_pydantic_validator_field.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_unnecessary_docstring.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_unused_copy_result.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_unused_underscored_keyword_parameter.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_unused_value_marker.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_vague_suppression_description.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_whole_request_response_payload_in_log.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_work_verb_get_route.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/opaque_parametrize_case_needs_id.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/over_mocked_test.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/phase_label_comment.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_application_model_joins.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_autospec_for_callable_mock.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_bulk_upsert.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_class_row.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_collection_comprehension.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_constant_time_secret_compare.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_declarative_batch_validation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_direct_import_module.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_discriminated_model_union.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_fstring_over_concat.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_grouped_settings.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_immutable_module_constant.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_injected_dependency_over_monkeypatch.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_library_fake.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_match_assert_never.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_match_exception_dispatch.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_match_value_dispatch.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_module_level_constant.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_monkeypatch_for_process_state_in_test.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_monotonic_for_elapsed_time.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_namedtuple_over_tuple_return.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_native_string_check.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_nominal_id_types.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_non_nullable_collection.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_optional_composite.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_or_pattern.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_precise_object_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_psycopg_executemany.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_pydantic_json_value.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_pydantic_model_assertion.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_pytest_dependency_fixtures.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_pytest_fixture_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_pytest_fixture_injection.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_regex_fullmatch.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_required_constructor_parameters.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_runtime_validation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_self_documenting_constant.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_self_type_annotation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_set_isdisjoint.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_single_psycopg_cursor.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_str_enum.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_struct_over_namedtuple.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_typed_cli.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_typed_mapping_get.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_typed_settings_field.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_validated_uuid_comparison.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_walrus_awaited_none_guard.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_walrus_comprehension_filter.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_walrus_regex_match.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/prefer_walrus_stream_loop.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/production_derived_test_cases.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/pytest_fixture_returns_bare_tuple.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/pytest_fixture_returns_closed_resource.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/redundant_class_docstring.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/redundant_docstring.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/redundant_module_docstring.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/redundant_test_constructor_forwarder.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/repeated_kwarg_heavy_call_in_test.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/repeated_static_call_cases.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/repeated_test_composition.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/repeated_unimplemented_test_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_constrained_api_integer.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_exp_on_jwt_decode.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_explicit_contract_implementation.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_explicit_psycopg_transaction.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_explicit_service_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_injectable_retry_sleep.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_keyword_only_swap_prone_params.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_nodecode_for_splitting_settings_field.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_port_for_service.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_precise_factory_signature.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_public_dependency_contract.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_pydantic_for_external_json.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_pydantic_for_mapping_shape.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_pydantic_for_structured_payload.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/require_pydantic_ordinal_lower_bound.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/restated_test_docstring.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/service_singleton_delegates_to_bulk.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/shared_mutable_pydantic_factory.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/stepdown.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/store_field_update_reuses_upsert.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/store_get_delegates_to_bulk_read.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/store_insert_requires_explicit_conflict_policy.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/store_insert_requires_on_conflict.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/store_mutation_command_fanout.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/subprocess_kill_without_reap.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/test_without_explicit_oracle.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/timestamp_order_requires_tiebreaker.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/trailing_value_narration.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/typed_error_reasons.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/uncontrolled_randomness_in_test.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/unused_mock_setup.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/unused_test_factory_option.py +0 -0
- {sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/suppression_policy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sarj-python-lint
|
|
3
|
-
Version: 1.110.
|
|
3
|
+
Version: 1.110.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/
|
|
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
_MIN_BRANCHES = 2
|
|
31
|
-
_MIN_REVIEW_BRANCHES =
|
|
31
|
+
_MIN_REVIEW_BRANCHES = 1
|
|
32
32
|
_REVIEW_BASES = MODEL_BASES | {"enum.Enum", "enum.IntEnum", "enum.StrEnum"}
|
|
33
33
|
_ISINSTANCE_ARGS = 2
|
|
34
34
|
_BUILTIN_TYPES = frozenset(
|
|
@@ -110,7 +110,7 @@ class PreferMatchTypeDispatch(ProjectRule):
|
|
|
110
110
|
limitations=(
|
|
111
111
|
"Safe fixes require a closed private nested synchronous helper with proven inert containing scopes and exact primitive literal callers. Only comment-free builtin class-check ladders on one parameter qualify; unknown subjects, callbacks, frame/closure escapes, sibling checks, grouped conditions, guards and custom classes remain review-only.",
|
|
112
112
|
"General dispatch requires two or more adjacent, unguarded `isinstance` branches over the same simple name. Repeated isinstance calls joined only by or on that same name are also checked; use an OR class pattern for shared behavior. A single isinstance call with a type union remains allowed.",
|
|
113
|
-
"
|
|
113
|
+
"Source-proven Pydantic/Enum dispatch is an error even for a single positive isinstance branch. Mixed model/builtin dispatch is supported. These findings have no automatic fixes; preserve nested checks inside case bodies. Predicate expressions, assertions, negated checks and compound guards remain allowed.",
|
|
114
114
|
"A terminating sibling prefix may precede a two-arm if/elif tail whose bodies can fall through. Preserve nested checks inside case bodies rather than moving them into case guards.",
|
|
115
115
|
"The checked types must be unshadowed builtins, undecorated module-local classes without an explicit or known locally inherited custom metaclass, or proven stdlib ast classes; unresolved imports, runtime type groups, repeated type references, generated files, and non-terminating sibling checks are excluded.",
|
|
116
116
|
"Local ancestry must resolve to stable undeclared-metaclass classes or proven builtin/stdlib ast bases. External bases, runtime base aliases, and parameterized base expressions remain excluded because their metaclass or __class_getitem__ effects are unproven.",
|
|
@@ -119,6 +119,46 @@ class PreferMatchTypeDispatch(ProjectRule):
|
|
|
119
119
|
"Declared support for Python before 3.10 suppresses this recommendation when proven by the nearest project metadata or exact installed-distribution ownership. Missing or ambiguous target metadata retains advisory behavior; it does not prove a modern target.",
|
|
120
120
|
),
|
|
121
121
|
examples=(
|
|
122
|
+
RuleExample(
|
|
123
|
+
example_id="single-model-type-branch",
|
|
124
|
+
scenario="single-model-type-dispatch",
|
|
125
|
+
title="One model-specific branch still dispatches on runtime type",
|
|
126
|
+
outcome=ExampleOutcome.MATCH,
|
|
127
|
+
files=(
|
|
128
|
+
ExampleFile.python(
|
|
129
|
+
"app/authorization.py",
|
|
130
|
+
"from pydantic import BaseModel\n"
|
|
131
|
+
"class Session(BaseModel):\n allowed: bool\n"
|
|
132
|
+
"def authorize(subject):\n"
|
|
133
|
+
" if isinstance(subject, Session):\n"
|
|
134
|
+
" if not subject.allowed:\n raise PermissionError\n",
|
|
135
|
+
),
|
|
136
|
+
),
|
|
137
|
+
focus_path=PurePosixPath("app/authorization.py"),
|
|
138
|
+
expected_count=1,
|
|
139
|
+
public=True,
|
|
140
|
+
),
|
|
141
|
+
RuleExample(
|
|
142
|
+
example_id="single-model-class-pattern",
|
|
143
|
+
scenario="single-model-type-dispatch",
|
|
144
|
+
title="A class pattern keeps the nested permission check in its body",
|
|
145
|
+
outcome=ExampleOutcome.NO_MATCH,
|
|
146
|
+
files=(
|
|
147
|
+
ExampleFile.python(
|
|
148
|
+
"app/authorization.py",
|
|
149
|
+
"from pydantic import BaseModel\n"
|
|
150
|
+
"class Session(BaseModel):\n allowed: bool\n"
|
|
151
|
+
"def authorize(subject):\n"
|
|
152
|
+
" match subject:\n"
|
|
153
|
+
" case Session():\n"
|
|
154
|
+
" if not subject.allowed:\n raise PermissionError\n"
|
|
155
|
+
" case _:\n return\n",
|
|
156
|
+
),
|
|
157
|
+
),
|
|
158
|
+
focus_path=PurePosixPath("app/authorization.py"),
|
|
159
|
+
expected_count=0,
|
|
160
|
+
public=True,
|
|
161
|
+
),
|
|
122
162
|
RuleExample(
|
|
123
163
|
example_id="three-branch-type-dispatch",
|
|
124
164
|
title="Repeated branches dispatch on runtime type",
|
|
@@ -455,9 +495,9 @@ def _review_dispatch_findings(
|
|
|
455
495
|
statement.lineno,
|
|
456
496
|
statement.col_offset + 1,
|
|
457
497
|
"SARJ080",
|
|
458
|
-
"
|
|
459
|
-
"fallbacks and nested guards. This
|
|
460
|
-
severity=Severity.
|
|
498
|
+
"Use match/case class patterns for this runtime type dispatch; preserve branch order, "
|
|
499
|
+
"fallbacks and nested guards. This recommendation has no automatic rewrite.",
|
|
500
|
+
severity=Severity.ERROR,
|
|
461
501
|
)
|
|
462
502
|
)
|
|
463
503
|
return findings
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_analysis_session.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_aliases.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_annotations.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_comments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_enums.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_inert.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_parameters.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_repeated.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_security.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_autofix_tests.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_closed_sql_literal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_prepared_sources.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_python_target.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/_rule_descriptors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/application_logging.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.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
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_ast_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_ast_names.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_ast_position.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_async_lifecycle.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_closed_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_comments.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_copy_on_write.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_dict_key_views.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_docstrings.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_exports.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_fastapi.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_first_party.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_fixed_record.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_imports.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_local_alias_fix.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_local_source.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_logging.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_nominal_project.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_numeric_proof.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_postgres.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_postgres_ctas.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_project_index.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.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.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_route_shapes.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_runtime_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_set_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_sql_explain.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_store_sql.py
RENAMED
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_store_writes.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_test_assertions.py
RENAMED
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/_test_provenance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_comment_cruft.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.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
|
{sarj_python_lint-1.110.0 → sarj_python_lint-1.110.1}/src/sarj_python_lint/rules/no_hasattr.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
|