simplint 0.2.2__tar.gz → 0.3.0__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.
- {simplint-0.2.2 → simplint-0.3.0}/CHANGELOG.md +80 -0
- {simplint-0.2.2 → simplint-0.3.0}/CONTRIBUTING.md +1 -5
- {simplint-0.2.2 → simplint-0.3.0}/Cargo.lock +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/Cargo.toml +1 -1
- simplint-0.3.0/PKG-INFO +69 -0
- {simplint-0.2.2 → simplint-0.3.0}/README.md +7 -4
- simplint-0.3.0/build.rs +38 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/conf.py +2 -1
- {simplint-0.2.2 → simplint-0.3.0}/docs/configuration.rst +69 -5
- {simplint-0.2.2 → simplint-0.3.0}/docs/index.rst +10 -5
- {simplint-0.2.2 → simplint-0.3.0}/ignore-words.txt +1 -0
- {simplint-0.2.2 → simplint-0.3.0}/pylock.toml +97 -97
- {simplint-0.2.2 → simplint-0.3.0}/pyproject.toml +6 -7
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/args.rs +12 -6
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/check.rs +250 -127
- {simplint-0.2.2/src/settings → simplint-0.3.0/src/cli}/conflicts.rs +38 -7
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/diagnostics.rs +39 -8
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/mod.rs +1 -0
- simplint-0.3.0/src/fix/cleanup.rs +91 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/fix/mod.rs +56 -26
- {simplint-0.2.2 → simplint-0.3.0}/src/lint/checker.rs +39 -4
- {simplint-0.2.2 → simplint-0.3.0}/src/lint/mod.rs +2 -18
- {simplint-0.2.2 → simplint-0.3.0}/src/lint/noqa.rs +16 -6
- {simplint-0.2.2 → simplint-0.3.0}/src/lint/registry.rs +25 -7
- {simplint-0.2.2/src/fix → simplint-0.3.0/src/lint}/ruff.rs +6 -88
- {simplint-0.2.2 → simplint-0.3.0}/src/lint/walker.rs +11 -11
- {simplint-0.2.2 → simplint-0.3.0}/src/main.rs +2 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/project/cache.rs +49 -6
- {simplint-0.2.2 → simplint-0.3.0}/src/project/constructors.rs +54 -61
- {simplint-0.2.2 → simplint-0.3.0}/src/project/facts.rs +83 -11
- {simplint-0.2.2 → simplint-0.3.0}/src/project/index.rs +314 -97
- {simplint-0.2.2 → simplint-0.3.0}/src/project/mod.rs +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/project/receivers.rs +27 -41
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/long_paragraph.md +4 -6
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/long_paragraph.rs +0 -30
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/suppression_without_reason.rs +28 -28
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/dataclasses/dataclass_kw_only.rs +54 -28
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/dataclasses/dataclass_options.rs +20 -16
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/dataclasses/mod.rs +2 -2
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/docstrings/function_docstring.md +16 -10
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/docstrings/function_docstring.rs +30 -13
- simplint-0.3.0/src/rules/docstrings/mod.rs +242 -0
- simplint-0.3.0/src/rules/docstrings/rest/attributes.rs +135 -0
- simplint-0.3.0/src/rules/docstrings/rest/edits.rs +149 -0
- simplint-0.3.0/src/rules/docstrings/rest/mod.rs +11 -0
- simplint-0.3.0/src/rules/docstrings/rest/parse.rs +246 -0
- simplint-0.3.0/src/rules/docstrings/rest/targets.rs +195 -0
- simplint-0.3.0/src/rules/docstrings/rest_attribute_kind.md +45 -0
- simplint-0.3.0/src/rules/docstrings/rest_attribute_kind.rs +39 -0
- simplint-0.3.0/src/rules/docstrings/rest_duplicate_param.md +49 -0
- simplint-0.3.0/src/rules/docstrings/rest_duplicate_param.rs +34 -0
- simplint-0.3.0/src/rules/docstrings/rest_field_syntax.md +58 -0
- simplint-0.3.0/src/rules/docstrings/rest_field_syntax.rs +98 -0
- simplint-0.3.0/src/rules/docstrings/rest_inline_markup.md +43 -0
- simplint-0.3.0/src/rules/docstrings/rest_inline_markup.rs +169 -0
- simplint-0.3.0/src/rules/docstrings/rest_missing_attribute.md +63 -0
- simplint-0.3.0/src/rules/docstrings/rest_missing_attribute.rs +41 -0
- simplint-0.3.0/src/rules/docstrings/rest_missing_param.md +48 -0
- simplint-0.3.0/src/rules/docstrings/rest_missing_param.rs +36 -0
- simplint-0.3.0/src/rules/docstrings/rest_missing_raises.md +67 -0
- simplint-0.3.0/src/rules/docstrings/rest_missing_raises.rs +133 -0
- simplint-0.3.0/src/rules/docstrings/rest_param_order.md +39 -0
- simplint-0.3.0/src/rules/docstrings/rest_param_order.rs +32 -0
- simplint-0.3.0/src/rules/docstrings/rest_private_field.md +45 -0
- simplint-0.3.0/src/rules/docstrings/rest_private_field.rs +26 -0
- simplint-0.3.0/src/rules/docstrings/rest_restating_field.md +41 -0
- simplint-0.3.0/src/rules/docstrings/rest_restating_field.rs +54 -0
- simplint-0.3.0/src/rules/docstrings/rest_returns.md +73 -0
- simplint-0.3.0/src/rules/docstrings/rest_returns.rs +153 -0
- simplint-0.3.0/src/rules/docstrings/rest_type_field.md +48 -0
- simplint-0.3.0/src/rules/docstrings/rest_type_field.rs +53 -0
- simplint-0.3.0/src/rules/docstrings/rest_unknown_attribute.md +47 -0
- simplint-0.3.0/src/rules/docstrings/rest_unknown_attribute.rs +36 -0
- simplint-0.3.0/src/rules/docstrings/rest_unknown_param.md +41 -0
- simplint-0.3.0/src/rules/docstrings/rest_unknown_param.rs +28 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/docstrings/test_module_docstring.md +1 -1
- simplint-0.3.0/src/rules/docstrings/undocumented_public_api.md +83 -0
- simplint-0.3.0/src/rules/docstrings/undocumented_public_api.rs +41 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/exports/all_format.rs +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/exports/all_not_last.rs +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/exports/missing_from_all.md +2 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/exports/missing_from_all.rs +3 -15
- simplint-0.3.0/src/rules/exports/mod.rs +18 -0
- simplint-0.3.0/src/rules/exports/unused_export.md +62 -0
- simplint-0.3.0/src/rules/exports/unused_export.rs +152 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/absolute_sibling_import.rs +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/dependency_import_guard.rs +2 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/init_module_content.md +18 -1
- simplint-0.3.0/src/rules/imports/init_module_content.rs +44 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/mod.rs +27 -49
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/mod.rs +2 -32
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/module_variable_case.rs +8 -15
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/single_letter_name.rs +23 -11
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/unexported_public_name.rs +2 -2
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/strings/kinds.rs +142 -113
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/strings/mod.rs +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/definition_before_use.rs +25 -30
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/forwarding_function.rs +3 -3
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/single_user_constant.rs +34 -36
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/walrus_candidate.rs +20 -17
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/constant_assert.rs +2 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/mock_attribute_assignment.rs +2 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/mock_without_spec.rs +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/test_class.md +2 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/test_class.rs +9 -1
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/missing_final.rs +16 -16
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/object_annotation.rs +2 -1
- simplint-0.3.0/src/settings/api.rs +194 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/settings/file.rs +1 -9
- {simplint-0.2.2 → simplint-0.3.0}/src/settings/metadata.rs +50 -3
- {simplint-0.2.2 → simplint-0.3.0}/src/settings/mod.rs +110 -82
- {simplint-0.2.2 → simplint-0.3.0}/src/settings/options.rs +89 -4
- simplint-0.3.0/src/syntax.rs +250 -0
- {simplint-0.2.2 → simplint-0.3.0}/tasks/assemble_release.py +16 -22
- {simplint-0.2.2 → simplint-0.3.0}/tasks/cargo_version.py +3 -5
- {simplint-0.2.2 → simplint-0.3.0}/tasks/check_sdist.py +3 -5
- {simplint-0.2.2 → simplint-0.3.0}/tasks/ecosystem.py +22 -30
- {simplint-0.2.2 → simplint-0.3.0}/tasks/generate_changelog.py +13 -16
- {simplint-0.2.2 → simplint-0.3.0}/tasks/pgo.py +68 -90
- {simplint-0.2.2 → simplint-0.3.0}/tasks/pgo.toml +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/tasks/python_versions.py +32 -51
- {simplint-0.2.2 → simplint-0.3.0}/tasks/update_cargo_edit.py +26 -36
- {simplint-0.2.2 → simplint-0.3.0}/tests/cache.rs +82 -9
- {simplint-0.2.2 → simplint-0.3.0}/tests/common/mod.rs +4 -3
- {simplint-0.2.2 → simplint-0.3.0}/tests/configuration.rs +70 -2
- {simplint-0.2.2 → simplint-0.3.0}/tests/conflicts.rs +23 -10
- {simplint-0.2.2 → simplint-0.3.0}/tests/fix.rs +28 -7
- simplint-0.3.0/tests/fixtures/comments/long_paragraph/long_paragraph.snap +5 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/comments/suppression_without_reason/suppression_without_reason.py +4 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/comments/suppression_without_reason/suppression_without_reason.snap +4 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring.snap +10 -10
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_contract.snap +20 -20
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_dynamic.snap +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_exported.snap +2 -2
- simplint-0.3.0/tests/fixtures/docstrings/function_docstring/function_docstring_facade__core.snap +25 -0
- simplint-0.3.0/tests/fixtures/docstrings/function_docstring/function_docstring_facade__helpers.snap +9 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_runtime.snap +8 -8
- simplint-0.3.0/tests/fixtures/docstrings/rest_attribute_kind/rest_attribute_kind.py +57 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_attribute_kind/rest_attribute_kind.snap +64 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_duplicate_param/rest_duplicate_param.py +35 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_duplicate_param/rest_duplicate_param.snap +40 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_field_syntax/rest_field_syntax.py +95 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_field_syntax/rest_field_syntax.snap +113 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_inline_markup/rest_inline_markup.py +39 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_inline_markup/rest_inline_markup.snap +53 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_missing_attribute/rest_missing_attribute.py +95 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_missing_attribute/rest_missing_attribute.snap +118 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_missing_param/rest_missing_param.py +120 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_missing_param/rest_missing_param.snap +162 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_missing_raises/rest_missing_raises.py +148 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_missing_raises/rest_missing_raises.snap +165 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_param_order/rest_param_order.py +16 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_param_order/rest_param_order.snap +5 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_private_field/rest_private_field.py +47 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_private_field/rest_private_field.snap +52 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_restating_field/rest_restating_field.py +19 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_restating_field/rest_restating_field.snap +7 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_returns/rest_returns.py +159 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_returns/rest_returns.snap +172 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_type_field/rest_type_field.py +56 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_type_field/rest_type_field.snap +67 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_unknown_attribute/rest_unknown_attribute.py +96 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_unknown_attribute/rest_unknown_attribute.snap +99 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_unknown_param/rest_unknown_param.py +134 -0
- simplint-0.3.0/tests/fixtures/docstrings/rest_unknown_param/rest_unknown_param.snap +141 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/test_module_docstring/test_module_docstring.snap +1 -1
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/test_module_docstring/test_module_docstring_inline.snap +1 -1
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/facade/__init__.py +11 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/facade/_core.py +19 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/facade/_helpers.py +2 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/loose/__init__.py +6 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/loose/_deep.py +1 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/loose/_extra.py +4 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/loose/_impl.py +4 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/loose/_stars.py +10 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/switched.py +59 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api.snap +10 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_facade__core.snap +9 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_imported.snap +1 -1
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_loose__deep.snap +5 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_loose__extra.snap +5 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_loose__impl.snap +5 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_loose__stars.snap +5 -0
- simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_switched.snap +7 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/__init__.py +1 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/sub/__init__.py +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/sub/inner.py +1 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export.py +14 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_all.py +4 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_call.py +8 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_comment.py +9 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_comment_all.py +7 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_double.py +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_extend.py +8 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_inline.py +7 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_lazy.py +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_noted.py +10 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_packed.py +12 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_star.py +4 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_tuple.py +7 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_tuple_end.py +7 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/exporting/unused_export_user.py +12 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export.snap +19 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_all.snap +10 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_call.snap +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_comment.snap +15 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_comment_all.snap +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_double.snap +6 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_extend.snap +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_inline.snap +13 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_noted.snap +5 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_packed.snap +19 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_root.py +4 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_tuple.snap +13 -0
- simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_tuple_end.snap +13 -0
- simplint-0.3.0/tests/fixtures/imports/init_module_content/_hidden/__init__.py +5 -0
- simplint-0.3.0/tests/fixtures/imports/init_module_content/_hidden/parts.py +1 -0
- simplint-0.3.0/tests/fixtures/imports/init_module_content/init_module_content_facade___init__.snap +6 -0
- simplint-0.3.0/tests/fixtures/imports/init_module_content/init_module_content_loose___init__.snap +5 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation_kinds.py +90 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation_kinds.snap +177 -85
- simplint-0.3.0/tests/fixtures/structure/walrus_candidate/walrus_candidate_listed.snap +5 -0
- simplint-0.3.0/tests/fixtures/structure/walrus_candidate/walrus_candidate_py37.snap +5 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate_width.py +18 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate_width.snap +19 -1
- simplint-0.3.0/tests/fixtures/testing/conditional_in_test/conditional_in_test_multiline_module_docstring_ok.snap +5 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/test_class/test_class.snap +11 -4
- simplint-0.3.0/tests/fixtures/testing/test_class/test_class_multiline_module_docstring_ok.snap +5 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/test_class/tests/test_class.py +7 -0
- simplint-0.3.0/tests/fixtures/typing/missing_final/missing_final_gate.snap +5 -0
- simplint-0.3.0/tests/fixtures/typing/missing_final/missing_final_py37.snap +5 -0
- simplint-0.3.0/tests/fixtures/typing/vars_call/vars_call_bound.snap +5 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/output.rs +2 -2
- {simplint-0.2.2 → simplint-0.3.0}/tests/project_index.rs +198 -5
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/docstrings.rs +44 -12
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/exports.rs +17 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/imports.rs +3 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/subcommands.rs +14 -23
- {simplint-0.2.2 → simplint-0.3.0}/tests/suppressions.rs +9 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_generate_changelog.py +18 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_pgo.py +15 -5
- {simplint-0.2.2 → simplint-0.3.0}/tox.toml +0 -7
- {simplint-0.2.2 → simplint-0.3.0}/uv.lock +6 -7
- simplint-0.2.2/PKG-INFO +0 -410
- simplint-0.2.2/README.rst +0 -379
- simplint-0.2.2/src/rules/docstrings/mod.rs +0 -143
- simplint-0.2.2/src/rules/docstrings/multiline_module_docstring.md +0 -29
- simplint-0.2.2/src/rules/docstrings/multiline_module_docstring.rs +0 -20
- simplint-0.2.2/src/rules/docstrings/undocumented_public_api.md +0 -67
- simplint-0.2.2/src/rules/docstrings/undocumented_public_api.rs +0 -48
- simplint-0.2.2/src/rules/exports/mod.rs +0 -127
- simplint-0.2.2/src/rules/imports/init_module_content.rs +0 -14
- simplint-0.2.2/tasks/generate_readme.py +0 -135
- simplint-0.2.2/tests/fixtures/comments/long_paragraph/long_paragraph.snap +0 -7
- simplint-0.2.2/tests/fixtures/docstrings/function_docstring/function_docstring_undocumented_public_api_imported.snap +0 -17
- simplint-0.2.2/tests/fixtures/docstrings/multiline_module_docstring/multiline_module_docstring.snap +0 -5
- simplint-0.2.2/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api.snap +0 -10
- simplint-0.2.2/tests/tasks/test_generate_readme.py +0 -53
- {simplint-0.2.2 → simplint-0.3.0}/CODE_OF_CONDUCT.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/LICENSE.txt +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/codecov.yml +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/__init__.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/apple-touch-icon.png +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/favicon.ico +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/favicon.svg +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/logo-192.png +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/logo-512.png +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/logo.png +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/rules.js +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/simplint.css +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/site.webmanifest +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/wordmark-dark.png +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_static/wordmark-light.png +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/_templates/base.html +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/cli.rst +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/rules.rst +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/docs/simplint_cli.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/rust-toolchain.toml +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/printer.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/subcommands.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/cli/watch.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/fix/apply.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/fix/errors.rs +0 -0
- {simplint-0.2.2/src/fix → simplint-0.3.0/src}/layout.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/mod.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/section_comment.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/section_comment.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/comments/suppression_without_reason.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/dataclasses/dataclass_kw_only.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/dataclasses/dataclass_options.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/docstrings/test_module_docstring.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/exports/all_format.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/exports/all_not_last.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/absolute_sibling_import.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/dependency_import_guard.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/future_annotations.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/future_annotations.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/imports/mod.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/module_variable_case.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/single_letter_name.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/naming/unexported_public_name.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/strings/string_concatenation.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/strings/string_concatenation.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/definition_before_use.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/forwarding_function.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/mod.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/single_user_constant.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/structure/walrus_candidate.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/conditional_in_test.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/conditional_in_test.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/constant_assert.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/mock_attribute_assignment.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/mock_without_spec.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/mod.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/parametrize_without_id.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/testing/parametrize_without_id.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/callable_ellipsis.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/callable_ellipsis.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/missing_final.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/mod.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/object_annotation.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/vars_call.md +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/rules/typing/vars_call.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/semantic/builder.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/src/semantic/mod.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tasks/pgo_corpus.toml +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/check.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/comments/long_paragraph/long_paragraph.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/comments/section_comment/section_comment.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/comments/section_comment/section_comment.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_kw_only/dataclass_kw_only.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_kw_only/dataclass_kw_only.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_kw_only/dataclass_kw_only_calls.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_kw_only/dataclass_kw_only_calls.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_kw_only/dataclass_kw_only_py39.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_options/dataclass_options.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_options/dataclass_options.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_options/dataclass_options_receivers.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_options/dataclass_options_receivers.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_options/dataclass_options_runtime.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/dataclasses/dataclass_options/dataclass_options_runtime.snap +0 -0
- {simplint-0.2.2/tests/fixtures/docstrings/function_docstring → simplint-0.3.0/tests/fixtures/docstrings/function_docstring/_internal}/function_docstring.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_contract.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_dynamic.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_exported.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/function_docstring/function_docstring_runtime.py +0 -0
- /simplint-0.2.2/tests/fixtures/docstrings/function_docstring/function_docstring_undocumented_public_api.snap → /simplint-0.3.0/tests/fixtures/docstrings/function_docstring/function_docstring_switched.snap +0 -0
- /simplint-0.2.2/tests/fixtures/docstrings/multiline_module_docstring/multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/docstrings/function_docstring/function_docstring_undocumented_public_api.snap +0 -0
- /simplint-0.2.2/tests/fixtures/docstrings/multiline_module_docstring/multiline_module_docstring_tests_test_module_docstring.snap → /simplint-0.3.0/tests/fixtures/docstrings/function_docstring/function_docstring_undocumented_public_api_imported.snap +0 -0
- {simplint-0.2.2/tests/fixtures/docstrings/multiline_module_docstring → simplint-0.3.0/tests/fixtures/docstrings/test_module_docstring}/multiline_module_docstring.py +0 -0
- {simplint-0.2.2/tests/fixtures/docstrings/multiline_module_docstring → simplint-0.3.0/tests/fixtures/docstrings/test_module_docstring}/multiline_module_docstring_ok.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/test_module_docstring/test_module_docstring_multiline_module_docstring.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/test_module_docstring/tests/test_module_docstring.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/test_module_docstring/tests/test_module_docstring_inline.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api.py +0 -0
- /simplint-0.2.2/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_function_docstring_dynamic.snap → /simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_facade__helpers.snap +0 -0
- /simplint-0.2.2/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_tests_test_module_docstring.snap → /simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_function_docstring_dynamic.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_imported.py +0 -0
- /simplint-0.2.2/tests/fixtures/exports/all_not_last/all_not_last_multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/docstrings/undocumented_public_api/undocumented_public_api_tests_test_module_docstring.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_format/all_format.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_format/all_format.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_format/all_format_bare.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_format/all_format_bare.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_format/all_format_tuple.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_format/all_format_tuple.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_ann.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_ann.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_eof.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_eof.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_fenced.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_fenced.snap +0 -0
- /simplint-0.2.2/tests/fixtures/exports/missing_from_all/missing_from_all_nested.snap → /simplint-0.3.0/tests/fixtures/exports/all_not_last/all_not_last_multiline_module_docstring_ok.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_negated.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_negated.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_nested.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_nested.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_nonl.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_nonl.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_reversed.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/all_not_last/all_not_last_reversed.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/consumer/use.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_aug.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_aug.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_bare.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_bare.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_call.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_call.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_empty.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_empty.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_guard.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_guard.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_hanging.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_hanging.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_hanging_comment.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_hanging_comment.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_imported.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_imported.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_multiline.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_multiline.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_nested.py +0 -0
- /simplint-0.2.2/tests/fixtures/exports/missing_from_all/missing_from_all_package___init__.snap → /simplint-0.3.0/tests/fixtures/exports/missing_from_all/missing_from_all_nested.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_noall.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_noall.snap +0 -0
- /simplint-0.2.2/tests/fixtures/exports/missing_from_all/missing_from_all_reexport.snap → /simplint-0.3.0/tests/fixtures/exports/missing_from_all/missing_from_all_package___init__.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_reexport.py +0 -0
- /simplint-0.2.2/tests/fixtures/exports/missing_from_all/missing_from_all_tests_test_module_docstring.snap → /simplint-0.3.0/tests/fixtures/exports/missing_from_all/missing_from_all_reexport.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_scripts.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_scripts.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_sorted.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/exports/missing_from_all/missing_from_all_sorted.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/exports/missing_from_all/missing_from_all_tests_test_module_docstring.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_channel_exec.snap → /simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_exporting_sub___init__.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_reversed_guard.snap → /simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_lazy.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_script.snap → /simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_root.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/future_annotations/future_annotations_py310.snap → /simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_star.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/init_module_content/init_module_content_multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/exports/unused_export/unused_export_tests_test_module_docstring.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/init_module_content/init_module_content_package_sub___init__.snap → /simplint-0.3.0/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_multiline_module_docstring_ok.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package___init__.snap +0 -0
- /simplint-0.2.2/tests/fixtures/naming/module_variable_case/module_variable_case_ply_table.snap → /simplint-0.3.0/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_channel_exec.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_module.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_remote_worker.snap +0 -0
- /simplint-0.2.2/tests/fixtures/naming/unexported_public_name/unexported_public_name_multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_reversed_guard.snap +0 -0
- /simplint-0.2.2/tests/fixtures/naming/unexported_public_name/unexported_public_name_remove.snap → /simplint-0.3.0/tests/fixtures/imports/absolute_sibling_import/absolute_sibling_import_package_sub_script.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/__init__.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/sub/__init__.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/sub/channel_exec.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/sub/module.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/sub/remote_worker.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/sub/reversed_guard.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/absolute_sibling_import/package/sub/script.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/dependency_import_guard/dependency_import_guard.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/dependency_import_guard/dependency_import_guard.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/dependency_import_guard/dependency_import_guard_py310.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/future_annotations/future_annotations.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/future_annotations/future_annotations.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/future_annotations/future_annotations_checking.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/future_annotations/future_annotations_checking.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/future_annotations/future_annotations_joined.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/imports/future_annotations/future_annotations_joined.snap +0 -0
- /simplint-0.2.2/tests/fixtures/naming/unexported_public_name/unexported_public_name_tests_test_module_docstring.snap → /simplint-0.3.0/tests/fixtures/imports/future_annotations/future_annotations_py310.snap +0 -0
- /simplint-0.2.2/tests/fixtures/imports/init_module_content/init_module_content_package___init__.snap → /simplint-0.3.0/tests/fixtures/imports/init_module_content/init_module_content__hidden___init__.snap +0 -0
- /simplint-0.2.2/tests/fixtures/structure/definition_before_use/definition_before_use_annotations_py310.snap → /simplint-0.3.0/tests/fixtures/imports/init_module_content/init_module_content_multiline_module_docstring_ok.snap +0 -0
- /simplint-0.2.2/tests/fixtures/structure/definition_before_use/definition_before_use_classbody.snap → /simplint-0.3.0/tests/fixtures/imports/init_module_content/init_module_content_package___init__.snap +0 -0
- /simplint-0.2.2/tests/fixtures/structure/walrus_candidate/walrus_candidate_dynamic.snap → /simplint-0.3.0/tests/fixtures/imports/init_module_content/init_module_content_package_sub___init__.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_alembic.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_alembic.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_ann.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_ann.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_call.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_call.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_conflict.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_conflict.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_dbapi.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_dbapi.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_frameworks.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_frameworks.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_gunicorn.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_gunicorn.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_kinds.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_kinds.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_lookalikes.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_lookalikes.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_noall.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_noall.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_ply.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_ply.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_ply_table.py +0 -0
- /simplint-0.2.2/tests/fixtures/structure/walrus_candidate/walrus_candidate_gate.snap → /simplint-0.3.0/tests/fixtures/naming/module_variable_case/module_variable_case_ply_table.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_rename.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_rename.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_scopes.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_scopes.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_strings.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_strings.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_typer.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_typer.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_version.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/module_variable_case/module_variable_case_version.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/single_letter_name/single_letter_name.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/single_letter_name/single_letter_name.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name_extend.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name_extend.snap +0 -0
- /simplint-0.2.2/tests/fixtures/structure/walrus_candidate/walrus_candidate_listed.snap → /simplint-0.3.0/tests/fixtures/naming/unexported_public_name/unexported_public_name_multiline_module_docstring_ok.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name_ply.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name_ply.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/naming/unexported_public_name/unexported_public_name_remove.py +0 -0
- /simplint-0.2.2/tests/fixtures/structure/walrus_candidate/walrus_candidate_py37.snap → /simplint-0.3.0/tests/fixtures/naming/unexported_public_name/unexported_public_name_remove.snap +0 -0
- /simplint-0.2.2/tests/fixtures/testing/conditional_in_test/conditional_in_test_multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/naming/unexported_public_name/unexported_public_name_tests_test_module_docstring.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation_old.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation_old_py310.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation_types.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/strings/string_concatenation/string_concatenation_types.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_annotations.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_annotations.snap +0 -0
- /simplint-0.2.2/tests/fixtures/testing/test_class/test_class_multiline_module_docstring_ok.snap → /simplint-0.3.0/tests/fixtures/structure/definition_before_use/definition_before_use_annotations_py310.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_classbody.py +0 -0
- /simplint-0.2.2/tests/fixtures/typing/missing_final/missing_final_gate.snap → /simplint-0.3.0/tests/fixtures/structure/definition_before_use/definition_before_use_classbody.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_decorated.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_decorated.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_decorated_py310.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_floating.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_floating.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_import_time.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_import_time.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_nonl.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/definition_before_use/definition_before_use_nonl.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/forwarding_function/forwarding_function.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/forwarding_function/forwarding_function.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant_all.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant_all.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant_dynamic.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant_dynamic.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant_spacing.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/single_user_constant/single_user_constant_spacing.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate_dynamic.py +0 -0
- /simplint-0.2.2/tests/fixtures/typing/missing_final/missing_final_py37.snap → /simplint-0.3.0/tests/fixtures/structure/walrus_candidate/walrus_candidate_dynamic.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate_gate.py +0 -0
- /simplint-0.2.2/tests/fixtures/typing/vars_call/vars_call_bound.snap → /simplint-0.3.0/tests/fixtures/structure/walrus_candidate/walrus_candidate_gate.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/structure/walrus_candidate/walrus_candidate_listed.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/conditional_in_test/conditional_in_test.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/conditional_in_test/tests/test_conditional_in_test.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/constant_assert/constant_assert.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/constant_assert/constant_assert.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/mock_attribute_assignment/mock_attribute_assignment.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/mock_attribute_assignment/tests/test_mock_attribute_assignment.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/mock_without_spec/mock_without_spec.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/mock_without_spec/tests/test_mock_without_spec.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/parametrize_without_id/parametrize_without_id.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/testing/parametrize_without_id/tests/test_parametrize_without_id.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/callable_ellipsis/callable_ellipsis.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/callable_ellipsis/callable_ellipsis.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_alias.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_alias.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_bare.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_bare.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_branch.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_branch.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_checking.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_checking.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_checking_py310.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_future.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_future_py310.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_gate.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_module.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_module.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_new.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_new.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_order.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_order.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_sorted.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_sorted.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_typing.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/missing_final/missing_final_typing.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/object_annotation/object_annotation.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/object_annotation/object_annotation.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/vars_call/vars_call.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/vars_call/vars_call.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/fixtures/typing/vars_call/vars_call_bound.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/layout.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/comments.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/dataclasses.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/main.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/naming.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/strings.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/structure.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/testing.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/rules/typing.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_azure.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_concise.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_full.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_github.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_gitlab.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_grouped.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_json-lines.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_json.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_junit.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_pylint.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_rdjson.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/snapshots/output__format_sarif.snap +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_assemble_release.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_cargo_version.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_check_sdist.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_ecosystem.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_python_versions.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/tasks/test_update_cargo_edit.py +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/watch.rs +0 -0
- {simplint-0.2.2 → simplint-0.3.0}/tests/wheel/test_cli.py +0 -0
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0 (2026-11-04)
|
|
4
|
+
|
|
5
|
+
<a name="release-0-3-0"></a>
|
|
6
|
+
|
|
7
|
+
<a name="release-0-3-0-added"></a>
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- The docstring rules share the new `SMP3` group, so `select = ["SMP3"]` picks all of them: `function-docstring` is
|
|
12
|
+
SMP300 (was SMP002), `test-module-docstring` SMP301 (was SMP004) and `undocumented-public-api` SMP302 (was SMP116);
|
|
13
|
+
update `select`, `ignore` and `noqa` comments that name the old codes. Docstrings no longer have a length limit:
|
|
14
|
+
`multiline-module-docstring` (SMP003) is gone, and `long-paragraph` (SMP005) checks comments only
|
|
15
|
+
([#27](https://github.com/gaborbernat/simplint/pull/27)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
16
|
+
- `undocumented-public-api` (SMP302) and `function-docstring` (SMP300) now follow a library's public API as the typing
|
|
17
|
+
spec and PEP 8 define it: modules under a `_`-prefixed path are internal, a public module without `__all__` offers
|
|
18
|
+
every name without a leading underscore, and a name a public module re-exports through `__all__`,
|
|
19
|
+
`from m import name as name` or `import *` needs its docstring where it is defined. A name another module imports
|
|
20
|
+
counts as public only in a public module, where `missing-from-all` (SMP113) lists it in `__all__`, and an application,
|
|
21
|
+
which nothing installs, has no public API at all. The new `project-kind`, `api-packages` and `api-modules` settings
|
|
22
|
+
tune this ([#27](https://github.com/gaborbernat/simplint/pull/27)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
23
|
+
- `init-module-content` (SMP109) lets a public package of a library re-export its API from private modules
|
|
24
|
+
([#27](https://github.com/gaborbernat/simplint/pull/27)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
25
|
+
- The new reStructuredText rules, SMP310 to SMP323, check reStructuredText field lists in docstrings when
|
|
26
|
+
`docstring-style = "rest"`: every field is well formed, described with more than its name and separated from the text
|
|
27
|
+
above by a blank line, documents a parameter or attribute that exists, with `:ivar:` or `:cvar:` as fits, once, and
|
|
28
|
+
carries no type, which belongs in annotations; roles keep their backticks and inline literals close; a public function
|
|
29
|
+
or class documents each parameter, attribute, return or yield value and exception it raises itself, and no internal
|
|
30
|
+
name. Their fixes add each missing field with an empty description for you to fill in, and remove or correct fields
|
|
31
|
+
for what no longer exists ([#27](https://github.com/gaborbernat/simplint/pull/27)) by
|
|
32
|
+
[@gaborbernat](https://github.com/gaborbernat).
|
|
33
|
+
- `unused-export` (SMP117) removes names from `__all__` that no other module of the run imports, keeping the `__all__`
|
|
34
|
+
of a library's top-level package and of the modules `api-modules` names as written
|
|
35
|
+
([#27](https://github.com/gaborbernat/simplint/pull/27)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
36
|
+
|
|
37
|
+
<a name="release-0-3-0-fixed"></a>
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- `--fix`, `--add-noqa` and `--add-ignore` write a file by renaming a complete copy over it, so a failed write no longer
|
|
42
|
+
leaves a cut-short source, and a file edited during the run keeps the edit. A symlink stays a symlink and the file
|
|
43
|
+
keeps its permissions ([#33](https://github.com/gaborbernat/simplint/pull/33)) by
|
|
44
|
+
[@gaborbernat](https://github.com/gaborbernat).
|
|
45
|
+
- A run no longer deletes the new, still empty cache directory of another simplint version running at the same time, as
|
|
46
|
+
pre-commit and the command line can, which made that other run fail
|
|
47
|
+
([#33](https://github.com/gaborbernat/simplint/pull/33)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
48
|
+
- A development build no longer warns that it cannot read the cache an earlier build of the same version wrote, and the
|
|
49
|
+
caches of other builds go away once no run has written to them for 30 days
|
|
50
|
+
([#27](https://github.com/gaborbernat/simplint/pull/27)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
51
|
+
- A file that linted clean is checked again when a name moves between two of the run's sets, as from a name read off a
|
|
52
|
+
module to a base class, instead of reusing its stale cached result
|
|
53
|
+
([#33](https://github.com/gaborbernat/simplint/pull/33)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
54
|
+
- `dataclass-kw-only` (SMP114) rewrites a positional call that a `noqa` comment for another code sits on, or that holds
|
|
55
|
+
`noqa` in a string, instead of leaving the dataclass without `kw_only=True`; only a comment that suppresses SMP114
|
|
56
|
+
keeps the call as it is ([#33](https://github.com/gaborbernat/simplint/pull/33)) by
|
|
57
|
+
[@gaborbernat](https://github.com/gaborbernat).
|
|
58
|
+
- `string-concatenation` (SMP112) no longer slows to a crawl on a function where many names each extend themselves in
|
|
59
|
+
turn, as `text = text + "!"` does; such chains now take time in proportion to their length
|
|
60
|
+
([#33](https://github.com/gaborbernat/simplint/pull/33)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
61
|
+
- `suppression-without-reason` (SMP060) reads suppression comments the way they take effect, so it now also flags
|
|
62
|
+
`# flake8: noqa` and a directive with extra space around its colon, such as `# ruff : ignore[...]`
|
|
63
|
+
([#33](https://github.com/gaborbernat/simplint/pull/33)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
64
|
+
- `test-class` (SMP200) now fixes a class whose methods have docstrings spanning several lines, as it does once
|
|
65
|
+
`ruff format` has joined them, so one round of fixes settles ([#28](https://github.com/gaborbernat/simplint/pull/28))
|
|
66
|
+
by [@gaborbernat](https://github.com/gaborbernat).
|
|
67
|
+
- `undocumented-public-api` (SMP302) and the reStructuredText attribute rules now see the docstring under a variable
|
|
68
|
+
defined in an `if` or `try` block, so they no longer report it as undocumented
|
|
69
|
+
([#33](https://github.com/gaborbernat/simplint/pull/33)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
70
|
+
|
|
71
|
+
<a name="release-0-3-0-documentation"></a>
|
|
72
|
+
|
|
73
|
+
### Documentation
|
|
74
|
+
|
|
75
|
+
- The changelog page renders again when a release lists no changes
|
|
76
|
+
([#18](https://github.com/gaborbernat/simplint/pull/18)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
77
|
+
- The pre-commit setup uses the `simplint-pre-commit` mirror, which installs the released wheel and so runs on
|
|
78
|
+
pre-commit.ci without a Rust toolchain ([#27](https://github.com/gaborbernat/simplint/pull/27)) by
|
|
79
|
+
[@gaborbernat](https://github.com/gaborbernat).
|
|
80
|
+
- The PyPI page shows a short introduction with links to the documentation instead of the full documentation pages
|
|
81
|
+
([#20](https://github.com/gaborbernat/simplint/pull/20)) by [@gaborbernat](https://github.com/gaborbernat).
|
|
82
|
+
|
|
3
83
|
## 0.2.2 (2026-11-02)
|
|
4
84
|
|
|
5
85
|
<a name="release-0-2-2"></a>
|
|
@@ -138,11 +138,7 @@ can change behavior, run the suite of an affected project by hand. Refresh the p
|
|
|
138
138
|
|
|
139
139
|
## Documentation
|
|
140
140
|
|
|
141
|
-
Edit the files under `docs/`.
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
tox run -e readme
|
|
145
|
-
```
|
|
141
|
+
Edit the files under `docs/`. PyPI shows `README.md`, so keep its links absolute.
|
|
146
142
|
|
|
147
143
|
Build and check links with the documentation environment:
|
|
148
144
|
|
simplint-0.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: simplint
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Classifier: Development Status :: 4 - Beta
|
|
5
|
+
Classifier: Environment :: Console
|
|
6
|
+
Classifier: Intended Audience :: Developers
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: Programming Language :: Python
|
|
9
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
15
|
+
Classifier: Programming Language :: Rust
|
|
16
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
17
|
+
Classifier: Topic :: Utilities
|
|
18
|
+
License-File: LICENSE.txt
|
|
19
|
+
Summary: Ruff companion linter with extra checks that make Python easier to read and review
|
|
20
|
+
Keywords: linter,python,ruff,style
|
|
21
|
+
Author-email: Bernat Gabor <gaborjbernat@gmail.com>
|
|
22
|
+
License-Expression: MIT
|
|
23
|
+
Requires-Python: >=3.11
|
|
24
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
25
|
+
Project-URL: Bug Tracker, https://github.com/gaborbernat/simplint/issues
|
|
26
|
+
Project-URL: Changelog, https://github.com/gaborbernat/simplint/blob/main/CHANGELOG.md
|
|
27
|
+
Project-URL: Documentation, https://simplint.readthedocs.io/en/latest/
|
|
28
|
+
Project-URL: Homepage, https://github.com/gaborbernat/simplint
|
|
29
|
+
Project-URL: Source Code, https://github.com/gaborbernat/simplint
|
|
30
|
+
|
|
31
|
+
<p align="center">
|
|
32
|
+
<picture>
|
|
33
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gaborbernat/simplint/main/docs/_static/wordmark-dark.png">
|
|
34
|
+
<img alt="simplint" src="https://raw.githubusercontent.com/gaborbernat/simplint/main/docs/_static/wordmark-light.png" width="420">
|
|
35
|
+
</picture>
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
# simplint
|
|
39
|
+
|
|
40
|
+
[](https://pypi.org/project/simplint)
|
|
41
|
+
[](https://pypi.org/project/simplint)
|
|
42
|
+
[](https://pepy.tech/project/simplint)
|
|
43
|
+
[](https://opensource.org/licenses/MIT)
|
|
44
|
+
[](https://github.com/gaborbernat/simplint/actions/workflows/build.yaml)
|
|
45
|
+
[](https://github.com/gaborbernat/simplint/actions/workflows/test.yaml)
|
|
46
|
+
[](https://simplint.readthedocs.io/en/latest/)
|
|
47
|
+
[](https://scorecard.dev/viewer/?uri=github.com/gaborbernat/simplint)
|
|
48
|
+
[](https://www.bestpractices.dev/projects/16281)
|
|
49
|
+
|
|
50
|
+
simplint is a companion linter for [Ruff](https://docs.astral.sh/ruff/), written in [Rust](https://www.rust-lang.org/).
|
|
51
|
+
It adds checks that make Python code easier to read and review, and fixes what it reports when the fix is mechanical.
|
|
52
|
+
The checks cover
|
|
53
|
+
[definitions ordered like a book](https://simplint.readthedocs.io/en/latest/_generated/rules/SMP020.html),
|
|
54
|
+
[explicit exports](https://simplint.readthedocs.io/en/latest/_generated/rules/SMP103.html),
|
|
55
|
+
[flat test modules](https://simplint.readthedocs.io/en/latest/_generated/rules/SMP200.html) and more. The rules are
|
|
56
|
+
opinionated. They reflect the maintainer's preferences while aiming to be as objective as possible.
|
|
57
|
+
|
|
58
|
+
Install it with `uv tool install simplint` ([uv](https://docs.astral.sh/uv/)) or `pipx install simplint`
|
|
59
|
+
([pipx](https://pipx.pypa.io/stable/)), then run `simplint check .` from the project root.
|
|
60
|
+
|
|
61
|
+
- [Documentation](https://simplint.readthedocs.io/en/latest/): installation, quick start and
|
|
62
|
+
[pre-commit](https://pre-commit.com/) hook
|
|
63
|
+
- [Configuration](https://simplint.readthedocs.io/en/latest/configuration.html)
|
|
64
|
+
- [Rules](https://simplint.readthedocs.io/en/latest/rules.html)
|
|
65
|
+
- [PyPI package](https://pypi.org/project/simplint)
|
|
66
|
+
- [Release history](https://github.com/gaborbernat/simplint/blob/main/CHANGELOG.md)
|
|
67
|
+
- [CONTRIBUTING.md](https://github.com/gaborbernat/simplint/blob/main/CONTRIBUTING.md): repository layout and
|
|
68
|
+
development commands
|
|
69
|
+
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<picture>
|
|
3
|
-
<source media="(prefers-color-scheme: dark)" srcset="docs/_static/wordmark-dark.png">
|
|
4
|
-
<img alt="simplint" src="docs/_static/wordmark-light.png" width="420">
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gaborbernat/simplint/main/docs/_static/wordmark-dark.png">
|
|
4
|
+
<img alt="simplint" src="https://raw.githubusercontent.com/gaborbernat/simplint/main/docs/_static/wordmark-light.png" width="420">
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
[](https://github.com/gaborbernat/simplint/actions/workflows/build.yaml)
|
|
15
15
|
[](https://github.com/gaborbernat/simplint/actions/workflows/test.yaml)
|
|
16
16
|
[](https://simplint.readthedocs.io/en/latest/)
|
|
17
|
+
[](https://scorecard.dev/viewer/?uri=github.com/gaborbernat/simplint)
|
|
18
|
+
[](https://www.bestpractices.dev/projects/16281)
|
|
17
19
|
|
|
18
20
|
simplint is a companion linter for [Ruff](https://docs.astral.sh/ruff/), written in [Rust](https://www.rust-lang.org/).
|
|
19
21
|
It adds checks that make Python code easier to read and review, and fixes what it reports when the fix is mechanical.
|
|
@@ -31,5 +33,6 @@ Install it with `uv tool install simplint` ([uv](https://docs.astral.sh/uv/)) or
|
|
|
31
33
|
- [Configuration](https://simplint.readthedocs.io/en/latest/configuration.html)
|
|
32
34
|
- [Rules](https://simplint.readthedocs.io/en/latest/rules.html)
|
|
33
35
|
- [PyPI package](https://pypi.org/project/simplint)
|
|
34
|
-
- [Release history](CHANGELOG.md)
|
|
35
|
-
- [CONTRIBUTING.md](CONTRIBUTING.md): repository layout and
|
|
36
|
+
- [Release history](https://github.com/gaborbernat/simplint/blob/main/CHANGELOG.md)
|
|
37
|
+
- [CONTRIBUTING.md](https://github.com/gaborbernat/simplint/blob/main/CONTRIBUTING.md): repository layout and
|
|
38
|
+
development commands
|
simplint-0.3.0/build.rs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Names the cache directory after the source the cached data depends on, so changing it starts a fresh cache rather
|
|
2
|
+
// than failing to read the old one, or reading facts an older build collected, as happens between development builds
|
|
3
|
+
// of one version. That source is every file declaring a type the cache stores, every file of `src/project`, which
|
|
4
|
+
// collects the facts, and the files outside it whose helpers decide what the facts hold. Tracking imports would follow
|
|
5
|
+
// every change, but a fixed list is simpler; a new helper module the facts read belongs in `SHARED`.
|
|
6
|
+
use std::fs;
|
|
7
|
+
use std::hash::{DefaultHasher, Hash, Hasher};
|
|
8
|
+
use std::path::{Path, PathBuf};
|
|
9
|
+
|
|
10
|
+
const SHARED: [&str; 2] = ["src/syntax.rs", "src/lint/noqa.rs"];
|
|
11
|
+
|
|
12
|
+
fn main() {
|
|
13
|
+
println!("cargo::rerun-if-changed=src");
|
|
14
|
+
let mut files = Vec::new();
|
|
15
|
+
collect(Path::new("src"), &mut files);
|
|
16
|
+
files.sort();
|
|
17
|
+
let mut hasher = DefaultHasher::new();
|
|
18
|
+
for file in files {
|
|
19
|
+
let text = fs::read_to_string(&file).unwrap_or_else(|error| panic!("read {}: {error}", file.display()));
|
|
20
|
+
let feeds_facts = file.starts_with("src/project") || SHARED.iter().any(|shared| file == Path::new(shared));
|
|
21
|
+
if feeds_facts || text.contains("rkyv::Archive") {
|
|
22
|
+
text.hash(&mut hasher);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
println!("cargo::rustc-env=SIMPLINT_CACHE_FORMAT={:016x}", hasher.finish());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
fn collect(directory: &Path, files: &mut Vec<PathBuf>) {
|
|
29
|
+
let entries = fs::read_dir(directory).unwrap_or_else(|error| panic!("read {}: {error}", directory.display()));
|
|
30
|
+
for entry in entries {
|
|
31
|
+
let path = entry.unwrap_or_else(|error| panic!("read {}: {error}", directory.display())).path();
|
|
32
|
+
if path.is_dir() {
|
|
33
|
+
collect(&path, files);
|
|
34
|
+
} else if path.extension().is_some_and(|extension| extension == "rs") {
|
|
35
|
+
files.push(path);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -166,9 +166,10 @@ def _generate(docs: Path) -> dict[str, str]:
|
|
|
166
166
|
|
|
167
167
|
|
|
168
168
|
_GROUPS: Final[dict[str, str]] = {
|
|
169
|
-
"SMP0": "Comments
|
|
169
|
+
"SMP0": "Comments and structure",
|
|
170
170
|
"SMP1": "Modules, typing and exports",
|
|
171
171
|
"SMP2": "Tests",
|
|
172
|
+
"SMP3": "Docstrings",
|
|
172
173
|
}
|
|
173
174
|
_FIX_BADGES: Final[dict[str, tuple[str, str]]] = {
|
|
174
175
|
"Always": ("fix-always", "🛠️ Fix always available"),
|
|
@@ -25,7 +25,7 @@ simplint's own settings live in ``[tool.simplint]``:
|
|
|
25
25
|
[tool.simplint]
|
|
26
26
|
select = ["ALL"] # the default
|
|
27
27
|
extend-select = []
|
|
28
|
-
ignore = ["
|
|
28
|
+
ignore = ["SMP300"]
|
|
29
29
|
per-file-ignores = { "tests/*" = ["SMP101"] }
|
|
30
30
|
extend-per-file-ignores = {}
|
|
31
31
|
|
|
@@ -88,6 +88,9 @@ in a ``simplint`` directory inside Ruff's cache directory, ``.ruff_cache`` unles
|
|
|
88
88
|
``--cache-dir`` or ``RUFF_CACHE_DIR`` names another, and never touches Ruff's own files there; ``--no-cache`` skips it.
|
|
89
89
|
A cached result also depends on the names other files use from that file, so editing an importer checks the files it
|
|
90
90
|
imports again.
|
|
91
|
+
Each simplint build keeps its own subdirectory there, and a run removes the subdirectories of other builds that no run
|
|
92
|
+
has written to for 30 days, so a project that runs two versions, as one pinned in pre-commit and another on the command
|
|
93
|
+
line, keeps both caches.
|
|
91
94
|
|
|
92
95
|
Naming
|
|
93
96
|
------
|
|
@@ -104,6 +107,64 @@ any other in ``naming.keep-names``:
|
|
|
104
107
|
``--config "naming.keep-names = ['urlpatterns']"`` replaces the list, and ``--show-settings`` prints it as
|
|
105
108
|
``linter.naming.keep_names``.
|
|
106
109
|
|
|
110
|
+
Public API
|
|
111
|
+
----------
|
|
112
|
+
|
|
113
|
+
The documentation rules treat a library's public API apart from its internal code. :doc:`SMP302 <_generated/rules/SMP302>` asks for docstrings on what users import,
|
|
114
|
+
:doc:`SMP300 <_generated/rules/SMP300>` removes them everywhere else, and
|
|
115
|
+
:doc:`SMP117 <_generated/rules/SMP117>` keeps ``__all__`` to the names other
|
|
116
|
+
modules use. An application has no Python API, so all of its code is internal.
|
|
117
|
+
|
|
118
|
+
.. code-block:: toml
|
|
119
|
+
|
|
120
|
+
[tool.simplint]
|
|
121
|
+
project-kind = "library" # the default is "auto"
|
|
122
|
+
api-packages = ["my_package"] # the default comes from the build backend
|
|
123
|
+
api-modules = ["my_package.errors"]
|
|
124
|
+
|
|
125
|
+
- ``project-kind`` is ``"library"`` or ``"application"``. ``"auto"`` picks a library when something installs the
|
|
126
|
+
project: a ``[build-system]`` table, or a ``setup.py`` or ``setup.cfg``. ``[tool.uv]`` with ``package = false``, and
|
|
127
|
+
maturin building only a binary (``bindings = "bin"``), make it an application, as does a project with none of these.
|
|
128
|
+
Neither a ``py.typed`` marker nor console scripts decide it: many libraries ship without the first and with the
|
|
129
|
+
second.
|
|
130
|
+
- ``api-packages`` names the top-level packages or modules the library ships. Without it, they come from the build
|
|
131
|
+
backend's settings (hatch ``packages``, uv's ``module-name``, flit's ``module.name``, setuptools ``packages`` and
|
|
132
|
+
``py-modules``, maturin's ``module-name``), then from the packages next to the ``pyproject.toml``, or in its ``src``
|
|
133
|
+
directory, that hold a ``py.typed`` marker, then from the package named after the project. When none is found, every
|
|
134
|
+
module outside ``docs`` and the tests counts.
|
|
135
|
+
- ``api-modules`` names modules, besides the top-level packages, that users import from directly. Their ``__all__`` is
|
|
136
|
+
the interface you declare, so SMP117 keeps the names no module of the project imports.
|
|
137
|
+
|
|
138
|
+
A module of an API package is public unless a part of its path starts with ``_``, as `PEP 8
|
|
139
|
+
<https://peps.python.org/pep-0008/#public-and-internal-interfaces>`__ describes, so a layout that keeps its code in
|
|
140
|
+
``my_package/_core.py`` and lists the public names in ``my_package/__init__.py`` exposes only those. ``--show-settings``
|
|
141
|
+
prints the result as ``linter.project_kind``, ``linter.api_packages`` and ``linter.api_modules``.
|
|
142
|
+
|
|
143
|
+
Docstring markup
|
|
144
|
+
----------------
|
|
145
|
+
|
|
146
|
+
The reStructuredText rules, SMP310 to SMP323, check the field lists of `reStructuredText docstrings
|
|
147
|
+
<https://www.sphinx-doc.org/en/master/usage/domains/python.html#info-field-lists>`__, as Sphinx renders them:
|
|
148
|
+
|
|
149
|
+
.. code-block:: toml
|
|
150
|
+
|
|
151
|
+
[tool.simplint]
|
|
152
|
+
docstring-style = "rest" # unset by default, which turns SMP310 to SMP323 off
|
|
153
|
+
|
|
154
|
+
Every docstring has to be accurate: no field for a parameter or attribute that does not exist, no ``:returns:`` on a
|
|
155
|
+
function that returns nothing, no ``:yields:`` on one that is not a generator, ``:ivar:`` and ``:cvar:`` for instance and
|
|
156
|
+
class attributes, and no types, which belong in annotations. Every field needs a description that says more than the name, a
|
|
157
|
+
field list needs a blank line above it, a constructor parameter is documented once, in the class docstring or in
|
|
158
|
+
``__init__``, roles such as ``:class:`` need their target in backticks, inline literals need closing, and the public API
|
|
159
|
+
leaves out internal names with a leading underscore. A docstring
|
|
160
|
+
of the public API also has to be complete: a ``:param:`` for each parameter, ``:returns:`` or ``:yields:`` when the
|
|
161
|
+
function hands back a value, ``:raises:`` for each exception it raises itself, and an ``:ivar:`` or ``:cvar:`` for each
|
|
162
|
+
attribute of a class. The fixes add the missing fields with empty descriptions, in the order Sphinx renders them, for you
|
|
163
|
+
to fill in.
|
|
164
|
+
|
|
165
|
+
Ruff's ``DOC201``, ``DOC402`` and ``DOC501`` read Google and numpydoc sections only, so they report the ``:returns:``,
|
|
166
|
+
``:yields:`` and ``:raises:`` fields as missing; see `Rules that work against each other`_.
|
|
167
|
+
|
|
107
168
|
Settings shared with Ruff
|
|
108
169
|
-------------------------
|
|
109
170
|
|
|
@@ -232,10 +293,9 @@ and how to resolve it:
|
|
|
232
293
|
|
|
233
294
|
The pairs are:
|
|
234
295
|
|
|
235
|
-
-
|
|
236
|
-
``D101``, ``D102``, ``D103``, ``D105``, ``D106`` and ``D107`` ask for. Ignore those, and let
|
|
237
|
-
|
|
238
|
-
- `SMP004 <https://simplint.readthedocs.io/en/latest/_generated/rules/SMP004.html>`__ removes the module docstrings of
|
|
296
|
+
- :doc:`SMP300 <_generated/rules/SMP300>` removes docstrings that Ruff's
|
|
297
|
+
``D101``, ``D102``, ``D103``, ``D105``, ``D106`` and ``D107`` ask for. Ignore those, and let :doc:`SMP302 <_generated/rules/SMP302>` ask for documentation on the public API.
|
|
298
|
+
- :doc:`SMP301 <_generated/rules/SMP301>` removes the module docstrings of
|
|
239
299
|
tests that Ruff's ``D100`` and ``D104`` ask for. Turn those off for test files in Ruff's ``per-file-ignores``.
|
|
240
300
|
- `SMP108 <https://simplint.readthedocs.io/en/latest/_generated/rules/SMP108.html>`__ removes ``from __future__ import
|
|
241
301
|
annotations`` on Python 3.14 and newer, which Ruff's ``I002`` adds back when ``lint.isort.required-imports`` lists it.
|
|
@@ -243,6 +303,10 @@ The pairs are:
|
|
|
243
303
|
- `SMP110 <https://simplint.readthedocs.io/en/latest/_generated/rules/SMP110.html>`__ makes imports from the file's own
|
|
244
304
|
package relative, which Ruff's ``TID252`` turns back when ``lint.flake8-tidy-imports.ban-relative-imports`` is
|
|
245
305
|
``"all"``. Set it to ``"parents"``.
|
|
306
|
+
- With ``docstring-style = "rest"``, :doc:`SMP315 <_generated/rules/SMP315>` asks for the ``:returns:`` and
|
|
307
|
+
``:yields:`` fields that Ruff's ``DOC201`` and ``DOC402`` read as missing sections, and
|
|
308
|
+
:doc:`SMP316 <_generated/rules/SMP316>` for the ``:raises:`` fields ``DOC501`` reads the same way, since those know
|
|
309
|
+
Google and numpydoc sections only. Ignore the Ruff rules.
|
|
246
310
|
|
|
247
311
|
Per-file ignores on either side count, so a Ruff rule turned off for tests does not conflict there. In preview, as in
|
|
248
312
|
Ruff's reports, the message names rules instead of codes. Other combinations clash only on some code, such as `SMP050
|
|
@@ -162,20 +162,25 @@ documentation of one rule and ``simplint rule --all`` of every rule, ``simplint
|
|
|
162
162
|
Pre-commit
|
|
163
163
|
----------
|
|
164
164
|
|
|
165
|
-
Add the hook to the ``.pre-commit-config.yaml`` of `pre-commit <https://pre-commit.com/>`__
|
|
166
|
-
`
|
|
165
|
+
Add the hook to the ``.pre-commit-config.yaml`` of `pre-commit <https://pre-commit.com/>`__ from the
|
|
166
|
+
`simplint-pre-commit <https://github.com/gaborbernat/simplint-pre-commit>`__ mirror and set ``rev`` to one of
|
|
167
|
+
`its tags <https://github.com/gaborbernat/simplint-pre-commit/tags>`__:
|
|
167
168
|
|
|
168
169
|
.. code-block:: yaml
|
|
169
170
|
|
|
170
|
-
- repo: https://github.com/gaborbernat/simplint
|
|
171
|
+
- repo: https://github.com/gaborbernat/simplint-pre-commit
|
|
171
172
|
rev: ""
|
|
172
173
|
hooks:
|
|
173
174
|
- id: simplint
|
|
174
175
|
|
|
175
176
|
The hook runs ``simplint check --fix`` on the whole project rather than on the changed files, because several rules need
|
|
176
177
|
to know which names other modules import. List it after Ruff's ``ruff-check`` hook and before its ``ruff-format`` hook,
|
|
177
|
-
the order above.
|
|
178
|
-
|
|
178
|
+
the order above. The mirror installs the wheel from `PyPI <https://pypi.org/project/simplint>`__, so it needs no Rust
|
|
179
|
+
toolchain and runs on `pre-commit.ci <https://pre-commit.ci>`__; it gets a tag for each release within a day.
|
|
180
|
+
|
|
181
|
+
To run a commit that is not released yet, use ``https://github.com/gaborbernat/simplint`` as the ``repo`` and the commit
|
|
182
|
+
as the ``rev``. That is a `Rust hook <https://pre-commit.com/#rust>`__: pre-commit builds simplint from source with the
|
|
183
|
+
Rust version the repository pins, so the toolchain must be installed, which it is not on pre-commit.ci.
|
|
179
184
|
|
|
180
185
|
.. toctree::
|
|
181
186
|
:hidden:
|