From ae299b869bcb094231b8e9204edfa4112ef619ed Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Tue, 25 Aug 2026 15:38:35 -0400 Subject: [PATCH 1/8] Allow rules without codes Summary -- This PR allows adding rules that only belong to categories and only have names rather than requiring a linter group and code. The first non-empty commit introduces a `Rule::identifier` shim and uses it to replace `Rule::noqa_code` calls mechanically in all the test snapshots. The second commit updates `FixTable` from a mapping of `SecondaryCode -> (name, fix_count)` to `DiagnosticId -> (Option, fix_count)`. This doesn't really change its usage but involves minor diffs to a substantial number of lines. It also allows us to drop some of the special `hashbrown` handling and the `hashbrown` dependency in `ruff_linter`, which is nice. The third commit contains the bulk of the change, including the macro changes needed to support `map_codes` entries like that for the `pytest-fixture-autouse` rule in the fourth commit: ```rust () => rules::ruff::rules::PytestFixtureAutouse, ``` These changes are pretty mechanical overall, just handling cases where the linter or noqa code could be missing, which fortunately seemed pretty straightforward in every case. The fourth commit takes advantage of these changes to reinstate `RUF076` as our first purely `pedantic` rule. I'm happy to drop that if it's too controversial or opens too many questions about the previously-removed rule and its code, but I thought it was nice to have a motivating example. We moved this rule from `preview` to `removed` because it was too pedantic for the `RUF` category, even in preview, so it's exactly the kind of rule we can support now with the categories. Finally, the fifth commit updates the contributing docs to reflect that linters and codes are optional. This may need to be adjusted if we back out the `RUF076` change. Test Plan -- Existing tests, plus a few new ones for `pytest-fixture-autouse` From cc3a9645d99cf6e53808bdd3720170416de301ef Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Tue, 25 Aug 2026 15:21:24 -0400 Subject: [PATCH 2/8] Use rule names in test snapshot paths avoid path-length issues on windows --- crates/ruff/src/commands/check.rs | 2 +- ...mands__check__test__io-error_E902.py.snap} | 0 crates/ruff_linter/src/rules/airflow/mod.rs | 2 +- ...w-dag-no-schedule-argument_AIR002.py.snap} | 0 ...sk-branch-as-short-circuit_AIR004.py.snap} | 0 ...ranch-as-short-circuit_AIR004_sdk.py.snap} | 0 ...-implicit-multiple-outputs_AIR202.py.snap} | 0 ...-variable-get-outside-task_AIR003.py.snap} | 0 ...outside-task_AIR003_dag_decorator.py.snap} | 0 ...le-get-outside-task_AIR003_no_dag.py.snap} | 0 ...able-name-task-id-mismatch_AIR001.py.snap} | 0 ...om-pull-in-template-string_AIR201.py.snap} | 0 ...airflow3-dag-dynamic-value_AIR304.py.snap} | 0 ...patible-function-signature_AIR303.py.snap} | 0 ...3-moved-to-provider_AIR302_amazon.py.snap} | 0 ...3-moved-to-provider_AIR302_celery.py.snap} | 0 ...ved-to-provider_AIR302_common_sql.py.snap} | 0 ...d-to-provider_AIR302_daskexecutor.py.snap} | 0 ...w3-moved-to-provider_AIR302_druid.py.snap} | 0 ...low3-moved-to-provider_AIR302_fab.py.snap} | 0 ...ow3-moved-to-provider_AIR302_hdfs.py.snap} | 0 ...ow3-moved-to-provider_AIR302_hive.py.snap} | 0 ...ow3-moved-to-provider_AIR302_http.py.snap} | 0 ...ow3-moved-to-provider_AIR302_jdbc.py.snap} | 0 ...ved-to-provider_AIR302_kubernetes.py.snap} | 0 ...w3-moved-to-provider_AIR302_mysql.py.snap} | 0 ...3-moved-to-provider_AIR302_oracle.py.snap} | 0 ...oved-to-provider_AIR302_papermill.py.snap} | 0 ...low3-moved-to-provider_AIR302_pig.py.snap} | 0 ...moved-to-provider_AIR302_postgres.py.snap} | 0 ...3-moved-to-provider_AIR302_presto.py.snap} | 0 ...w3-moved-to-provider_AIR302_samba.py.snap} | 0 ...w3-moved-to-provider_AIR302_slack.py.snap} | 0 ...ow3-moved-to-provider_AIR302_smtp.py.snap} | 0 ...3-moved-to-provider_AIR302_sqlite.py.snap} | 0 ...moved-to-provider_AIR302_standard.py.snap} | 0 ...low3-moved-to-provider_AIR302_try.py.snap} | 0 ...-moved-to-provider_AIR302_zendesk.py.snap} | 0 ...ow3-removal_AIR301_airflow_plugin.py.snap} | 0 ...sts__airflow3-removal_AIR301_args.py.snap} | 0 ...w3-removal_AIR301_class_attribute.py.snap} | 0 ...__airflow3-removal_AIR301_context.py.snap} | 0 ...airflow3-removal_AIR301_decorator.py.snap} | 0 ...ts__airflow3-removal_AIR301_names.py.snap} | 0 ...airflow3-removal_AIR301_names_fix.py.snap} | 0 ...airflow3-removal_AIR301_names_try.py.snap} | 0 ...removal_AIR301_provider_names_fix.py.snap} | 0 ...gested-to-move-to-provider_AIR312.py.snap} | 0 ...ed-to-move-to-provider_AIR312_try.py.snap} | 0 ...low3-suggested-update_AIR311_args.py.snap} | 0 ...ow3-suggested-update_AIR311_names.py.snap} | 0 ...flow3-suggested-update_AIR311_try.py.snap} | 0 ...sts__airflow31-moved_AIR321_names.py.snap} | 0 crates/ruff_linter/src/rules/eradicate/mod.rs | 2 +- ..._tests__commented-out-code_ERA001.py.snap} | 0 .../ruff_linter/src/rules/flake8_2020/mod.rs | 2 +- ...lake8_2020__tests__six-py3_YTT202.py.snap} | 0 ...sts__sys-version-cmp-str10_YTT302.py.snap} | 0 ...ests__sys-version-cmp-str3_YTT103.py.snap} | 0 ...version-info-minor-cmp-int_YTT204.py.snap} | 0 ...sts__sys-version-info0-eq3_YTT201.py.snap} | 0 ..._sys-version-info1-cmp-int_YTT203.py.snap} | 0 ..._tests__sys-version-slice1_YTT303.py.snap} | 0 ..._tests__sys-version-slice3_YTT101.py.snap} | 0 ..._2020__tests__sys-version0_YTT301.py.snap} | 0 ..._2020__tests__sys-version2_YTT102.py.snap} | 0 .../ruff_linter/src/rules/flake8_async/mod.rs | 2 +- ...__tests__async-busy-wait_ASYNC110.py.snap} | 0 ...-function-with-timeout_ASYNC109_0.py.snap} | 0 ...-function-with-timeout_ASYNC109_1.py.snap} | 0 ..._tests__async-zero-sleep_ASYNC115.py.snap} | 0 ...-httpx-in-async-function_ASYNC212.py.snap} | 0 ...p-call-in-async-function_ASYNC210.py.snap} | 0 ...-input-in-async-function_ASYNC250.py.snap} | 0 ...n-call-in-async-function_ASYNC230.py.snap} | 0 ...method-in-async-function_ASYNC240.py.snap} | 0 ...-sleep-in-async-function_ASYNC251.py.snap} | 0 ...ncel-scope-no-checkpoint_ASYNC100.py.snap} | 0 ...rocess-in-async-function_ASYNC22x.py.snap} | 0 ...__long-sleep-not-forever_ASYNC116.py.snap} | 0 ...rocess-in-async-function_ASYNC22x.py.snap} | 0 ...c__tests__trio-sync-call_ASYNC105.py.snap} | 0 ...rocess-in-async-function_ASYNC22x.py.snap} | 0 ...nager-in-async-generator_ASYNC119.py.snap} | 0 .../src/rules/flake8_bandit/mod.rs | 8 ++---- ...flake8_bandit__tests__assert_S101.py.snap} | 0 ..._tests__bad-file-permissions_S103.py.snap} | 0 ..._call-with-shell-equals-true_S604.py.snap} | 0 ..._bandit__tests__django-extra_S610.py.snap} | 0 ...andit__tests__django-raw-sql_S611.py.snap} | 0 ..._bandit__tests__exec-builtin_S102.py.snap} | 0 ...dit__tests__flask-debug-true_S201.py.snap} | 0 ...ardcoded-bind-all-interfaces_S104.py.snap} | 0 ...__hardcoded-password-default_S107.py.snap} | 0 ..._hardcoded-password-func-arg_S106.py.snap} | 0 ...s__hardcoded-password-string_S105.py.snap} | 0 ...ts__hardcoded-sql-expression_S608.py.snap} | 0 ...__tests__hardcoded-temp-file_S108.py.snap} | 0 ...shlib-insecure-hash-function_S324.py.snap} | 0 ...sts__jinja2-autoescape-false_S701.py.snap} | 0 ...gging-config-insecure-listen_S612.py.snap} | 0 ...andit__tests__mako-templates_S702.py.snap} | 0 ...bandit__tests__paramiko-call_S601.py.snap} | 0 ...review__bad-file-permissions_S103.py.snap} | 0 ...eview__suspicious-eval-usage_S307.py.snap} | 0 ...__suspicious-mark-safe-usage_S308.py.snap} | 0 ...n-cryptographic-random-usage_S311.py.snap} | 0 ...iew__suspicious-pickle-usage_S301.py.snap} | 0 ...iew__suspicious-telnet-usage_S312.py.snap} | 0 ...w__suspicious-url-open-usage_S310.py.snap} | 0 ...s__preview__unsafe-yaml-load_S506.py.snap} | 0 ...uest-with-no-cert-validation_S501.py.snap} | 0 ...sts__request-without-timeout_S113.py.snap} | 0 ...tests__snmp-insecure-version_S508.py.snap} | 0 ...ests__snmp-weak-cryptography_S509.py.snap} | 0 ...ssh-no-host-key-verification_S507.py.snap} | 0 ..._tests__ssl-insecure-version_S502.py.snap} | 0 ...tests__ssl-with-bad-defaults_S503.py.snap} | 0 ...__tests__ssl-with-no-version_S504.py.snap} | 0 ...__start-process-with-a-shell_S605.py.snap} | 0 ..._start-process-with-no-shell_S606.py.snap} | 0 ...rt-process-with-partial-path_S607.py.snap} | 0 ...popen-with-shell-equals-true_S602.py.snap} | 0 ...ss-without-shell-equals-true_S603.py.snap} | 0 ...tests__suspicious-eval-usage_S307.py.snap} | 0 ...ts__suspicious-ftplib-import_S402.py.snap} | 0 ...s__suspicious-ftplib-import_S402.pyi.snap} | 0 ...s__suspicious-httpoxy-import_S412.py.snap} | 0 ...__suspicious-httpoxy-import_S412.pyi.snap} | 0 ...ests__suspicious-lxml-import_S410.py.snap} | 0 ...sts__suspicious-lxml-import_S410.pyi.snap} | 0 ...__suspicious-mark-safe-usage_S308.py.snap} | 0 ...n-cryptographic-random-usage_S311.py.snap} | 0 ...ts__suspicious-pickle-import_S403.py.snap} | 0 ...s__suspicious-pickle-import_S403.pyi.snap} | 0 ...sts__suspicious-pickle-usage_S301.py.snap} | 0 ...__suspicious-pycrypto-import_S413.py.snap} | 0 ..._suspicious-pycrypto-import_S413.pyi.snap} | 0 ...ts__suspicious-pyghmi-import_S415.py.snap} | 0 ...s__suspicious-pyghmi-import_S415.pyi.snap} | 0 ...suspicious-subprocess-import_S404.py.snap} | 0 ...uspicious-subprocess-import_S404.pyi.snap} | 0 ...sts__suspicious-telnet-usage_S312.py.snap} | 0 ..._suspicious-telnetlib-import_S401.py.snap} | 0 ...suspicious-telnetlib-import_S401.pyi.snap} | 0 ...s__suspicious-url-open-usage_S310.py.snap} | 0 ..._suspicious-xml-etree-import_S405.py.snap} | 0 ...suspicious-xml-etree-import_S405.pyi.snap} | 0 ..._suspicious-xml-expat-import_S407.py.snap} | 0 ...suspicious-xml-expat-import_S407.pyi.snap} | 0 ...uspicious-xml-minidom-import_S408.py.snap} | 0 ...spicious-xml-minidom-import_S408.pyi.snap} | 0 ...minidom-import_S408_type_checking.py.snap} | 0 ...uspicious-xml-pulldom-import_S409.py.snap} | 0 ...spicious-xml-pulldom-import_S409.pyi.snap} | 0 ...s__suspicious-xml-sax-import_S406.py.snap} | 0 ...__suspicious-xml-sax-import_S406.pyi.snap} | 0 ...ts__suspicious-xmlrpc-import_S411.py.snap} | 0 ...s__suspicious-xmlrpc-import_S411.pyi.snap} | 0 ...ests__tarfile-unsafe-members_S202.py.snap} | 0 ...__tests__try-except-continue_S112.py.snap} | 0 ...ndit__tests__try-except-pass_S110.py.snap} | 0 ...x-command-wildcard-injection_S609.py.snap} | 0 ...dit__tests__unsafe-yaml-load_S506.py.snap} | 0 ...ests__weak-cryptographic-key_S505.py.snap} | 0 .../src/rules/flake8_blind_except/mod.rs | 2 +- ...d_except__tests__blind-except_BLE.py.snap} | 0 .../src/rules/flake8_boolean_trap/mod.rs | 2 +- ...ult-value-positional-argument_FBT.py.snap} | 0 ...lean-positional-value-in-call_FBT.py.snap} | 0 ...type-hint-positional-argument_FBT.py.snap} | 0 .../src/rules/flake8_bugbear/mod.rs | 10 +++----- ...lass-without-abstract-method_B024.py.snap} | 0 ...bugbear__tests__assert-false_B011.py.snap} | 0 ...s__assert-raises-exception_B017_0.py.snap} | 0 ...s__assert-raises-exception_B017_1.py.snap} | 0 ...ts__assignment-to-os-environ_B003.py.snap} | 0 ...ched-without-explicit-strict_B911.py.snap} | 0 ...ests__cached-instance-method_B019.py.snap} | 0 ...structure_class_as_data_structure.py.snap} | 0 ...ture_py39_class_as_data_structure.py.snap} | 0 ...ests__del-attr-with-constant_B043.py.snap} | 0 ..._duplicate-handler-exception_B014.py.snap} | 0 ...uplicate-try-block-exception_B025.py.snap} | 0 ...bear__tests__duplicate-value_B033.py.snap} | 0 ...d-without-abstract-decorator_B027.py.snap} | 0 ...-without-abstract-decorator_B027.pyi.snap} | 0 ...sts__except-with-empty-tuple_B029.py.snap} | 0 ...t-with-non-exception-classes_B030.py.snap} | 0 ...r__tests__f-string-docstring_B021.py.snap} | 0 ...all-in-default-argument_B006_B008.py.snap} | 0 ..._function-uses-loop-variable_B023.py.snap} | 0 ..._get-attr-with-constant_B009_B010.py.snap} | 0 ...s__jump-statement-in-finally_B012.py.snap} | 0 ...ests__loop-iterator-mutation_B909.py.snap} | 0 ...-variable-overrides-iterator_B020.py.snap} | 0 ..._map-without-explicit-strict_B912.py.snap} | 0 ...ithout-explicit-strict_py313_B912.py.snap} | 0 ...__mutable-argument-default_B006_1.py.snap} | 0 ..._mutable-argument-default_B006_1.pyi.snap} | 0 ...__mutable-argument-default_B006_2.py.snap} | 0 ...__mutable-argument-default_B006_3.py.snap} | 0 ...__mutable-argument-default_B006_4.py.snap} | 0 ...__mutable-argument-default_B006_5.py.snap} | 0 ...__mutable-argument-default_B006_6.py.snap} | 0 ...__mutable-argument-default_B006_7.py.snap} | 0 ...__mutable-argument-default_B006_8.py.snap} | 0 ...__mutable-argument-default_B006_9.py.snap} | 0 ...utable-argument-default_B006_B008.py.snap} | 0 ...__mutable-contextvar-default_B039.py.snap} | 0 ...ests__no-explicit-stacklevel_B028.py.snap} | 0 ...__mutable-argument-default_B006_1.py.snap} | 0 ..._mutable-argument-default_B006_1.pyi.snap} | 0 ...__mutable-argument-default_B006_2.py.snap} | 0 ...__mutable-argument-default_B006_3.py.snap} | 0 ...__mutable-argument-default_B006_4.py.snap} | 0 ...__mutable-argument-default_B006_5.py.snap} | 0 ...__mutable-argument-default_B006_6.py.snap} | 0 ...__mutable-argument-default_B006_7.py.snap} | 0 ...__mutable-argument-default_B006_8.py.snap} | 0 ...__mutable-argument-default_B006_9.py.snap} | 0 ...utable-argument-default_B006_B008.py.snap} | 0 ...ugbear__tests__raise-literal_B016.py.snap} | 0 ...e-without-from-inside-except_B904.py.snap} | 0 ...ests__re-sub-positional-args_B034.py.snap} | 0 ...t-tuple-in-exception-handler_B013.py.snap} | 0 ...__tests__return-in-generator_B901.py.snap} | 0 ...__reuse-of-groupby-generator_B031.py.snap} | 0 ..._set-attr-with-constant_B009_B010.py.snap} | 0 ...-unpacking-after-keyword-arg_B026.py.snap} | 0 ...tatic-key-dict-comprehension_B035.py.snap} | 0 ...ct-comprehension_py315_B035_py315.py.snap} | 0 ..._strip-with-multi-characters_B005.py.snap} | 0 ...y-prefix-increment-decrement_B002.py.snap} | 0 ...nintentional-type-annotation_B032.py.snap} | 0 ...s__unreliable-callable-check_B004.py.snap} | 0 ...unused-loop-control-variable_B007.py.snap} | 0 ...tests__useless-comparison_B015.ipynb.snap} | 0 ...r__tests__useless-comparison_B015.py.snap} | 0 ..._useless-contextlib-suppress_B022.py.snap} | 0 ...tests__useless-expression_B018.ipynb.snap} | 0 ...r__tests__useless-expression_B018.py.snap} | 0 .../src/rules/flake8_builtins/mod.rs | 18 +++++-------- ...__builtin-argument-shadowing_A002.py.snap} | 0 ...hadowing_A002.py_builtins_ignorelist.snap} | 0 ..._builtin-attribute-shadowing_A003.py.snap} | 0 ...hadowing_A003.py_builtins_ignorelist.snap} | 0 ...ts__builtin-import-shadowing_A004.py.snap} | 0 ...hadowing_A004.py_builtins_ignorelist.snap} | 0 ...uiltin-import-shadowing_A004.py_py38.snap} | 0 ...in-lambda-argument-shadowing_A006.py.snap} | 0 ...hadowing_A006.py_builtins_ignorelist.snap} | 0 ...__builtin-variable-shadowing_A001.py.snap} | 0 ...hadowing_A001.py_builtins_ignorelist.snap} | 0 ...ing_A005__modules___abc____init__.py.snap} | 0 ...__init__.py_builtins_allowed_modules.snap} | 0 ..._A005__modules__logging____init__.py.snap} | 0 ...__init__.py_builtins_allowed_modules.snap} | 0 ...5__modules__non_builtin____init__.py.snap} | 0 ...__init__.py_builtins_allowed_modules.snap} | 0 ...ng_A005__modules__package__bisect.py.snap} | 0 ...__bisect.py_builtins_allowed_modules.snap} | 0 ...5__modules__package__collections.pyi.snap} | 0 ...owing_A005__modules__package__xml.py.snap} | 0 ...age__xml.py_builtins_allowed_modules.snap} | 0 ...g_A005__modules__string____init__.py.snap} | 0 ...__init__.py_builtins_allowed_modules.snap} | 0 ...05__modules__utils__logging.py_false.snap} | 0 ...005__modules__utils__logging.py_root.snap} | 0 ...A005__modules__utils__logging.py_src.snap} | 0 ...005__modules__utils__logging.py_true.snap} | 0 .../src/rules/flake8_comprehensions/mod.rs | 12 +++------ ...sary-comprehension-in-call_C419_1.py.snap} | 0 ...necessary-call-around-sorted_C413.py.snap} | 0 ..._unnecessary-collection-call_C408.py.snap} | 0 ...ow_dict_calls_with_keyword_arguments.snap} | 0 ...essary-comprehension-in-call_C419.py.snap} | 0 ...sary-comprehension-in-call_C419_2.py.snap} | 0 ...-comprehension-in-call_C419_py315.py.snap} | 0 ...s__unnecessary-comprehension_C416.py.snap} | 0 ...t-comprehension-for-iterable_C420.py.snap} | 0 ...comprehension-for-iterable_C420_1.py.snap} | 0 ...comprehension-for-iterable_C420_2.py.snap} | 0 ...comprehension-for-iterable_C420_3.py.snap} | 0 ...ssary-double-cast-or-process_C414.py.snap} | 0 ...__unnecessary-generator-dict_C402.py.snap} | 0 ...__unnecessary-generator-list_C400.py.snap} | 0 ...cessary-generator-list_C400_py315.py.snap} | 0 ...s__unnecessary-generator-set_C401.py.snap} | 0 ...ecessary-generator-set_C401_py315.py.snap} | 0 ...tests__unnecessary-list-call_C411.py.snap} | 0 ..._unnecessary-list-call_C411_py315.py.snap} | 0 ...sary-list-comprehension-dict_C404.py.snap} | 0 ...ssary-list-comprehension-set_C403.py.snap} | 0 ...list-comprehension-set_C403_py315.py.snap} | 0 ...ts__unnecessary-literal-dict_C406.py.snap} | 0 ...sts__unnecessary-literal-set_C405.py.snap} | 0 ...ary-literal-within-dict-call_C418.py.snap} | 0 ...teral-within-dict-call_C418_py315.py.snap} | 0 ...ary-literal-within-list-call_C410.py.snap} | 0 ...ry-literal-within-tuple-call_C409.py.snap} | 0 ...eral-within-tuple-call_C409_py315.py.snap} | 0 ...ions__tests__unnecessary-map_C417.py.snap} | 0 ...ns__tests__unnecessary-map_C417_1.py.snap} | 0 ...necessary-subscript-reversal_C415.py.snap} | 0 .../src/rules/flake8_datetimez/mod.rs | 2 +- ...s__call-date-fromtimestamp_DTZ012.py.snap} | 0 ...ez__tests__call-date-today_DTZ011.py.snap} | 0 ...all-datetime-fromtimestamp_DTZ006.py.snap} | 0 ...atetime-now-without-tzinfo_DTZ005.py.snap} | 0 ...time-strptime-without-zone_DTZ007.py.snap} | 0 ...tests__call-datetime-today_DTZ002.py.snap} | 0 ...-datetime-utcfromtimestamp_DTZ004.py.snap} | 0 ...ests__call-datetime-utcnow_DTZ003.py.snap} | 0 ...ll-datetime-without-tzinfo_DTZ001.py.snap} | 0 ...z__tests__datetime-min-max_DTZ901.py.snap} | 0 .../src/rules/flake8_debugger/mod.rs | 2 +- ...e8_debugger__tests__debugger_T100.py.snap} | 0 .../src/rules/flake8_django/mod.rs | 2 +- ..._django-all-with-model-form_DJ007.py.snap} | 0 ...ngo-exclude-with-model-form_DJ006.py.snap} | 0 ...o-locals-in-render-function_DJ003.py.snap} | 0 ...go-model-without-dunder-str_DJ008.py.snap} | 0 ...-leading-receiver-decorator_DJ013.py.snap} | 0 ...nullable-model-string-field_DJ001.py.snap} | 0 ...dered-body-content-in-model_DJ012.py.snap} | 0 .../rules/flake8_implicit_str_concat/mod.rs | 8 ++---- ...explicit-string-concatenation_ISC.py.snap} | 0 ...tion-in-collection-literal_ISC004.py.snap} | 0 ...implicit-string-concatenation_ISC.py.snap} | 0 ...ng-concatenation_ISC_syntax_error.py.snap} | 0 ...-concatenation_ISC_syntax_error_2.py.snap} | 0 ...explicit-string-concatenation_ISC.py.snap} | 0 ...implicit-string-concatenation_ISC.py.snap} | 0 ...implicit-string-concatenation_ISC.py.snap} | 0 ...implicit-string-concatenation_ISC.py.snap} | 0 ...ng-concatenation_ISC_syntax_error.py.snap} | 0 ...-concatenation_ISC_syntax_error_2.py.snap} | 0 .../src/rules/flake8_logging/mod.rs | 2 +- ...irect-logger-instantiation_LOG001.py.snap} | 0 ...o-outside-except-handler_LOG014_0.py.snap} | 0 ...o-outside-except-handler_LOG014_1.py.snap} | 0 ...exception-without-exc-info_LOG007.py.snap} | 0 ...nvalid-get-logger-argument_LOG002.py.snap} | 0 ...n-outside-except-handler_LOG004_0.py.snap} | 0 ...n-outside-except-handler_LOG004_1.py.snap} | 0 ...g__tests__root-logger-call_LOG015.py.snap} | 0 ...__tests__undocumented-warn_LOG009.py.snap} | 0 .../src/rules/flake8_logging_format/mod.rs | 6 +---- ...s__preview__logging-f-string_G004.py.snap} | 0 ...__logging-f-string_G004_arg_order.py.snap} | 0 ...ing-f-string_G004_implicit_concat.py.snap} | 0 .../ruff_linter/src/rules/flake8_pie/mod.rs | 2 +- ...ate-class-field-definition_PIE794.py.snap} | 0 ..._multiple-starts-ends-with_PIE810.py.snap} | 0 ...e__tests__non-unique-enums_PIE796.py.snap} | 0 ...__tests__non-unique-enums_PIE796.pyi.snap} | 0 ...lemented-container-builtin_PIE807.py.snap} | 0 ...s__unnecessary-dict-kwargs_PIE804.py.snap} | 0 ...s__unnecessary-placeholder_PIE790.py.snap} | 0 ...s__unnecessary-range-start_PIE808.py.snap} | 0 ..._tests__unnecessary-spread_PIE800.py.snap} | 0 .../ruff_linter/src/rules/flake8_print/mod.rs | 2 +- ...flake8_print__tests__p-print_T203.py.snap} | 0 ...__flake8_print__tests__print_T201.py.snap} | 0 .../ruff_linter/src/rules/flake8_pyi/mod.rs | 12 +++------ ...ests__any-eq-ne-annotation_PYI032.py.snap} | 0 ...sts__any-eq-ne-annotation_PYI032.pyi.snap} | 0 ...__argument-default-in-stub_PYI014.py.snap} | 0 ..._argument-default-in-stub_PYI014.pyi.snap} | 0 ...assignment-default-in-stub_PYI015.py.snap} | 0 ...ssignment-default-in-stub_PYI015.pyi.snap} | 0 ...tests__bad-exit-annotation_PYI036.py.snap} | 0 ...ests__bad-exit-annotation_PYI036.pyi.snap} | 0 ...ad-version-info-comparison_PYI006.py.snap} | 0 ...d-version-info-comparison_PYI006.pyi.snap} | 0 ...ts__bad-version-info-order_PYI066.py.snap} | 0 ...s__bad-version-info-order_PYI066.pyi.snap} | 0 ...__tests__byte-string-usage_PYI057.py.snap} | 0 ..._tests__byte-string-usage_PYI057.pyi.snap} | 0 ...s__collections-named-tuple_PYI024.py.snap} | 0 ...__collections-named-tuple_PYI024.pyi.snap} | 0 ...complex-assignment-in-stub_PYI017.py.snap} | 0 ...omplex-assignment-in-stub_PYI017.pyi.snap} | 0 ...mplex-if-statement-in-stub_PYI002.py.snap} | 0 ...plex-if-statement-in-stub_PYI002.pyi.snap} | 0 ...custom-type-var-for-self_PYI019_0.py.snap} | 0 ...ustom-type-var-for-self_PYI019_0.pyi.snap} | 0 ...ustom-type-var-for-self_PYI019_1.pyi.snap} | 0 ...__tests__docstring-in-stub_PYI021.py.snap} | 0 ..._tests__docstring-in-stub_PYI021.pyi.snap} | 0 ...__duplicate-literal-member_PYI062.py.snap} | 0 ..._duplicate-literal-member_PYI062.pyi.snap} | 0 ...ts__duplicate-union-member_PYI016.py.snap} | 0 ...s__duplicate-union-member_PYI016.pyi.snap} | 0 ...is-in-non-empty-class-body_PYI013.py.snap} | 0 ...s-in-non-empty-class-body_PYI013.pyi.snap} | 0 ...future-annotations-in-stub_PYI044.py.snap} | 0 ...uture-annotations-in-stub_PYI044.pyi.snap} | 0 ...or-return-from-iter-method_PYI058.py.snap} | 0 ...r-return-from-iter-method_PYI058.pyi.snap} | 0 ...eneric-not-last-base-class_PYI059.py.snap} | 0 ...neric-not-last-base-class_PYI059.pyi.snap} | 0 ...ter-method-return-iterable_PYI045.py.snap} | 0 ...er-method-return-iterable_PYI045.pyi.snap} | 0 ...tests__legacy-type-comment_PYI033.py.snap} | 0 ...ests__legacy-type-comment_PYI033.pyi.snap} | 0 ...rgument-annotation-in-stub_PYI050.py.snap} | 0 ...gument-annotation-in-stub_PYI050.pyi.snap} | 0 ...tests__non-empty-stub-body_PYI010.py.snap} | 0 ...ests__non-empty-stub-body_PYI010.pyi.snap} | 0 ...ests__non-self-return-type_PYI034.py.snap} | 0 ...sts__non-self-return-type_PYI034.pyi.snap} | 0 ...__numeric-literal-too-long_PYI054.py.snap} | 0 ..._numeric-literal-too-long_PYI054.pyi.snap} | 0 ..._tests__pass-in-class-body_PYI012.py.snap} | 0 ...tests__pass-in-class-body_PYI012.pyi.snap} | 0 ...__pass-statement-stub-body_PYI009.py.snap} | 0 ..._pass-statement-stub-body_PYI009.pyi.snap} | 0 ...__patch-version-comparison_PYI004.py.snap} | 0 ..._patch-version-comparison_PYI004.pyi.snap} | 0 ...-positional-only-parameter_PYI063.py.snap} | 0 ...positional-only-parameter_PYI063.pyi.snap} | 0 ...review_legacy-type-comment_PYI033.py.snap} | 0 ..._redundant-numeric-union_PYI041_1.py.snap} | 0 ...redundant-numeric-union_PYI041_1.pyi.snap} | 0 ..._redundant-numeric-union_PYI041_2.py.snap} | 0 ..._redundant-numeric-union_PYI041_3.py.snap} | 0 ..._redundant-numeric-union_PYI041_4.py.snap} | 0 ...y38_redundant-none-literal_PYI061.py.snap} | 0 ...38_redundant-none-literal_PYI061.pyi.snap} | 0 ...e-alias-without-annotation_PYI026.py.snap} | 0 ...-alias-without-annotation_PYI026.pyi.snap} | 0 ..._quoted-annotation-in-stub_PYI020.py.snap} | 0 ...quoted-annotation-in-stub_PYI020.pyi.snap} | 0 ...s__redundant-final-literal_PYI064.py.snap} | 0 ...__redundant-final-literal_PYI064.pyi.snap} | 0 ...s__redundant-literal-union_PYI051.py.snap} | 0 ...__redundant-literal-union_PYI051.pyi.snap} | 0 ...ts__redundant-none-literal_PYI061.py.snap} | 0 ...s__redundant-none-literal_PYI061.pyi.snap} | 0 ..._redundant-numeric-union_PYI041_1.py.snap} | 0 ...redundant-numeric-union_PYI041_1.pyi.snap} | 0 ..._redundant-numeric-union_PYI041_2.py.snap} | 0 ..._redundant-numeric-union_PYI041_3.py.snap} | 0 ..._redundant-numeric-union_PYI041_4.py.snap} | 0 ...sts__snake-case-type-alias_PYI042.py.snap} | 0 ...ts__snake-case-type-alias_PYI042.pyi.snap} | 0 ...tr-or-repr-defined-in-stub_PYI029.py.snap} | 0 ...r-or-repr-defined-in-stub_PYI029.pyi.snap} | 0 ...__string-or-bytes-too-long_PYI053.py.snap} | 0 ..._string-or-bytes-too-long_PYI053.pyi.snap} | 0 ...b-body-multiple-statements_PYI048.py.snap} | 0 ...-body-multiple-statements_PYI048.pyi.snap} | 0 ...sts__t-suffixed-type-alias_PYI043.py.snap} | 0 ...ts__t-suffixed-type-alias_PYI043.pyi.snap} | 0 ...e-alias-without-annotation_PYI026.py.snap} | 0 ...-alias-without-annotation_PYI026.pyi.snap} | 0 ...d-argument-default-in-stub_PYI011.py.snap} | 0 ...-argument-default-in-stub_PYI011.pyi.snap} | 0 ...llections-abc-set-import_PYI025_1.py.snap} | 0 ...lections-abc-set-import_PYI025_1.pyi.snap} | 0 ...llections-abc-set-import_PYI025_2.py.snap} | 0 ...lections-abc-set-import_PYI025_2.pyi.snap} | 0 ...llections-abc-set-import_PYI025_3.py.snap} | 0 ...lections-abc-set-import_PYI025_3.pyi.snap} | 0 ...notated-assignment-in-stub_PYI052.py.snap} | 0 ...otated-assignment-in-stub_PYI052.pyi.snap} | 0 ...d-special-variable-in-stub_PYI035.py.snap} | 0 ...-special-variable-in-stub_PYI035.pyi.snap} | 0 ..._unnecessary-literal-union_PYI030.py.snap} | 0 ...unnecessary-literal-union_PYI030.pyi.snap} | 0 ...ts__unnecessary-type-union_PYI055.py.snap} | 0 ...s__unnecessary-type-union_PYI055.pyi.snap} | 0 ...sts__unprefixed-type-param_PYI001.py.snap} | 0 ...ts__unprefixed-type-param_PYI001.pyi.snap} | 0 ...nrecognized-platform-check_PYI007.py.snap} | 0 ...recognized-platform-check_PYI007.pyi.snap} | 0 ...unrecognized-platform-name_PYI008.py.snap} | 0 ...nrecognized-platform-name_PYI008.pyi.snap} | 0 ...ognized-version-info-check_PYI003.py.snap} | 0 ...gnized-version-info-check_PYI003.pyi.snap} | 0 ...pported-method-call-on-all_PYI056.py.snap} | 0 ...ported-method-call-on-all_PYI056.pyi.snap} | 0 ...s__unused-private-protocol_PYI046.py.snap} | 0 ...__unused-private-protocol_PYI046.pyi.snap} | 0 ..._unused-private-type-alias_PYI047.py.snap} | 0 ...unused-private-type-alias_PYI047.pyi.snap} | 0 ...s__unused-private-type-var_PYI018.py.snap} | 0 ...__unused-private-type-var_PYI018.pyi.snap} | 0 ..._unused-private-typed-dict_PYI049.py.snap} | 0 ...unused-private-typed-dict_PYI049.pyi.snap} | 0 ...-length-version-comparison_PYI005.py.snap} | 0 ...length-version-comparison_PYI005.pyi.snap} | 0 .../src/rules/flake8_pytest_style/mod.rs | 6 +---- ..._pytest-composite-assertion_PT018.py.snap} | 1 - ...t-extraneous-scope-function_PT003.py.snap} | 0 .../src/rules/flake8_return/mod.rs | 2 +- ...sts__implicit-return-value_RET502.py.snap} | 0 ...rn__tests__implicit-return_RET503.py.snap} | 0 ...ts__superfluous-else-break_RET508.py.snap} | 0 ..._superfluous-else-continue_RET507.py.snap} | 0 ...ts__superfluous-else-raise_RET506.py.snap} | 0 ...s__superfluous-else-return_RET505.py.snap} | 0 ..._tests__unnecessary-assign_RET504.py.snap} | 0 ...s__unnecessary-return-none_RET501.py.snap} | 0 .../src/rules/flake8_simplify/mod.rs | 10 +++----- ...ify__tests__collapsible-if_SIM102.py.snap} | 0 ..._tests__compare-with-tuple_SIM109.py.snap} | 0 ...dict-get-with-none-default_SIM910.py.snap} | 0 ...f_suppressible-exception_SIM105_5.py.snap} | 0 ...fy__tests__double-negation_SIM208.py.snap} | 0 ..._duplicate-isinstance-call_SIM101.py.snap} | 0 ..._tests__enumerate-for-loop_SIM113.py.snap} | 0 ...ify__tests__expr-and-false_SIM223.py.snap} | 0 ...__tests__expr-and-not-expr_SIM220.py.snap} | 0 ...y__tests__expr-or-not-expr_SIM221.py.snap} | 0 ...plify__tests__expr-or-true_SIM222.py.snap} | 0 ...-block-instead-of-dict-get_SIM401.py.snap} | 0 ...ock-instead-of-dict-lookup_SIM116.py.snap} | 0 ...se-block-instead-of-if-exp_SIM108.py.snap} | 0 ...s__if-expr-with-false-true_SIM211.py.snap} | 0 ...s__if-expr-with-true-false_SIM210.py.snap} | 0 ..._if-expr-with-twisted-arms_SIM212.py.snap} | 0 ...__tests__if-with-same-arms_SIM114.py.snap} | 0 ...plify__tests__in-dict-keys_SIM118.py.snap} | 0 ...__multiple-with-statements_SIM117.py.snap} | 0 ...lify__tests__needless-bool_SIM103.py.snap} | 0 ...fy__tests__negate-equal-op_SIM201.py.snap} | 0 ...tests__negate-not-equal-op_SIM202.py.snap} | 0 ...-file-with-context-handler_SIM115.py.snap} | 0 ...review__enumerate-for-loop_SIM113.py.snap} | 0 ...sts__reimplemented-builtin_SIM110.py.snap} | 0 ...sts__reimplemented-builtin_SIM111.py.snap} | 0 ...turn-in-try-except-finally_SIM107.py.snap} | 0 ...tests__split-static-string_SIM905.py.snap} | 0 ...__suppressible-exception_SIM105_0.py.snap} | 0 ...__suppressible-exception_SIM105_1.py.snap} | 0 ...__suppressible-exception_SIM105_2.py.snap} | 0 ...__suppressible-exception_SIM105_3.py.snap} | 0 ...__suppressible-exception_SIM105_4.py.snap} | 0 ...ized-environment-variables_SIM112.py.snap} | 0 ...fy__tests__yoda-conditions_SIM300.py.snap} | 0 ...__zip-dict-keys-and-values_SIM911.py.snap} | 0 .../ruff_linter/src/rules/flake8_slots/mod.rs | 2 +- ...ts-in-namedtuple-subclass_SLOT002.py.snap} | 0 ..._no-slots-in-str-subclass_SLOT000.py.snap} | 0 ...o-slots-in-tuple-subclass_SLOT001.py.snap} | 0 .../src/rules/flake8_type_checking/mod.rs | 7 +++-- ...ard-library-import_TC001-3_future.py.snap} | 0 ..._import__first-party-import_TC001.py.snap} | 0 ...__first-party-import_TC001_future.py.snap} | 0 ...party-import_TC001_future_present.py.snap} | 0 ...rt__standard-library-import_TC003.py.snap} | 0 ..._import__third-party-import_TC002.py.snap} | 0 ...nly-standard-library-import_TC003.py.snap} | 0 .../src/rules/flake8_unused_arguments/mod.rs | 2 +- ..._unused-class-method-argument_ARG.py.snap} | 0 ...sts__unused-function-argument_ARG.py.snap} | 0 ...tests__unused-lambda-argument_ARG.py.snap} | 0 ...tests__unused-method-argument_ARG.py.snap} | 0 ...unused-static-method-argument_ARG.py.snap} | 0 .../src/rules/flake8_use_pathlib/mod.rs | 14 +++------- ...thlib__tests__builtin-open_PTH123.py.snap} | 0 ...8_use_pathlib__tests__glob_PTH207.py.snap} | 0 ...nvalid-pathlib-with-suffix_PTH210.py.snap} | 0 ...alid-pathlib-with-suffix_PTH210_1.py.snap} | 0 ...pathlib__tests__os-listdir_PTH208.py.snap} | 0 ...b__tests__os-path-getatime_PTH203.py.snap} | 0 ...b__tests__os-path-getctime_PTH205.py.snap} | 0 ...b__tests__os-path-getmtime_PTH204.py.snap} | 0 ...ib__tests__os-path-getsize_PTH202.py.snap} | 0 ...__tests__os-path-getsize_PTH202_2.py.snap} | 0 ...thlib__tests__os-sep-split_PTH206.py.snap} | 0 ...pathlib__tests__os-symlink_PTH211.py.snap} | 0 ...structor-current-directory_PTH201.py.snap} | 0 ...sts__preview__builtin-open_PTH123.py.snap} | 0 ..._preview__os-path-getatime_PTH203.py.snap} | 0 ..._preview__os-path-getctime_PTH205.py.snap} | 0 ..._preview__os-path-getmtime_PTH204.py.snap} | 0 ...__preview__os-path-getsize_PTH202.py.snap} | 0 ...preview__os-path-getsize_PTH202_2.py.snap} | 0 ...structor-current-directory_PTH201.py.snap} | 0 ...pathlib__tests__py-path_py_path_1.py.snap} | 0 ...pathlib__tests__py-path_py_path_2.py.snap} | 0 ...alid-pathlib-with-suffix_PTH210_2.py.snap} | 0 crates/ruff_linter/src/rules/flynt/mod.rs | 2 +- ...s__static-join-to-f-string_FLY002.py.snap} | 0 .../ruff_linter/src/rules/pandas_vet/mod.rs | 2 +- ...nique-constant-series-check_PD101.py.snap} | 0 ...able_pandas_use_of_dot_read_table.py.snap} | 0 ...das-use-of-inplace-argument_PD002.py.snap} | 0 .../ruff_linter/src/rules/pep8_naming/mod.rs | 4 +-- ...amelcase-imported-as-acronym_N817.py.snap} | 0 ...melcase-imported-as-constant_N814.py.snap} | 0 ...elcase-imported-as-lowercase_N813.py.snap} | 0 ...ant-imported-as-non-constant_N811.py.snap} | 0 ..._tests__dunder-function-name_N807.py.snap} | 0 ...ror-suffix-on-exception-name_N818.py.snap} | 0 ...amelcase-imported-as-acronym_N817.py.snap} | 0 ...melcase-imported-as-constant_N814.py.snap} | 0 ...elcase-imported-as-lowercase_N813.py.snap} | 0 ...ant-imported-as-non-constant_N811.py.snap} | 0 ...e_names_dunder-function-name_N807.py.snap} | 0 ...ror-suffix-on-exception-name_N818.py.snap} | 0 ..._names_invalid-argument-name_N803.py.snap} | 0 ...ore_names_invalid-class-name_N801.py.snap} | 0 ...gument-name-for-class-method_N804.py.snap} | 0 ...rst-argument-name-for-method_N805.py.snap} | 0 ..._names_invalid-function-name_N802.py.snap} | 0 ...e-name_N999__badAllowed____init__.py.snap} | 0 ...se-imported-as-non-lowercase_N812.py.snap} | 0 ...case-variable-in-class-scope_N815.py.snap} | 0 ...ase-variable-in-global-scope_N816.py.snap} | 0 ...wercase-variable-in-function_N806.py.snap} | 0 ...tests__invalid-argument-name_N803.py.snap} | 0 ...tests__invalid-argument-name_N804.py.snap} | 0 ...g__tests__invalid-class-name_N801.py.snap} | 0 ...gument-name-for-class-method_N804.py.snap} | 0 ...rst-argument-name-for-method_N805.py.snap} | 0 ...tests__invalid-function-name_N802.py.snap} | 0 ...me_N999__module__MODULE____init__.py.snap} | 0 ...e-name_N999__module__MODULE__file.py.snap} | 0 ...me_N999__module__flake9____init__.py.snap} | 0 ...odule__invalid_name__0001_initial.py.snap} | 0 ...999__module__invalid_name__import.py.snap} | 0 ...module__mod with spaces____init__.py.snap} | 0 ...99__module__mod with spaces__file.py.snap} | 0 ...module__mod-with-dashes____init__.py.snap} | 0 ...me_N999__module__no_module__test.txt.snap} | 0 ...999__module__valid_name____init__.py.snap} | 0 ...999__module__valid_name____main__.py.snap} | 0 ...99__module__valid_name____setup__.py.snap} | 0 ...ule__valid_name__file-with-dashes.py.snap} | 0 ...module__valid_name__file-with-dashes.snap} | 0 ...se-imported-as-non-lowercase_N812.py.snap} | 0 ...case-variable-in-class-scope_N815.py.snap} | 0 ...ase-variable-in-global-scope_N816.py.snap} | 0 ...wercase-variable-in-function_N806.py.snap} | 0 crates/ruff_linter/src/rules/perflint/mod.rs | 8 ++---- ...__incorrect-dict-iterator_PERF102.py.snap} | 0 ...manual-dict-comprehension_PERF403.py.snap} | 0 ...manual-list-comprehension_PERF401.py.snap} | 0 ...__tests__manual-list-copy_PERF402.py.snap} | 0 ...__incorrect-dict-iterator_PERF102.py.snap} | 0 ...manual-dict-comprehension_PERF403.py.snap} | 0 ...manual-list-comprehension_PERF401.py.snap} | 0 ...tests__try-except-in-loop_PERF203.py.snap} | 0 ...ts__unnecessary-list-cast_PERF101.py.snap} | 0 .../ruff_linter/src/rules/pycodestyle/mod.rs | 18 +++++-------- ..._tests__ambiguous-class-name_E742.py.snap} | 0 ...sts__ambiguous-function-name_E743.py.snap} | 0 ...sts__ambiguous-variable-name_E741.py.snap} | 0 ...ts__ambiguous-variable-name_E741.pyi.snap} | 0 ...odestyle__tests__bare-except_E722.py.snap} | 0 ...s__blank-line-after-decorator_E30.py.snap} | 0 ...s__blank-line-between-methods_E30.py.snap} | 0 ...-between-methods_E30_syntax_error.py.snap} | 0 ...s__blank-line-with-whitespace_W29.py.snap} | 0 ...__blank-line-with-whitespace_W293.py.snap} | 0 ...lines-after-function-or-class_E30.py.snap} | 0 ...unction-or-class_E30_syntax_error.py.snap} | 0 ...ines-before-nested-definition_E30.py.snap} | 0 ...ested-definition_E30_syntax_error.py.snap} | 0 ..._tests__blank-lines-top-level_E30.py.snap} | 0 ...p-level_E302_first_line_docstring.py.snap} | 0 ...-level_E302_first_line_expression.py.snap} | 0 ...op-level_E302_first_line_function.py.snap} | 0 ...p-level_E302_first_line_statement.py.snap} | 0 ...-lines-top-level_E30_syntax_error.py.snap} | 0 ..._blank-line-after-decorator_notebook.snap} | 0 ...ank-line-after-decorator_typing_stub.snap} | 0 ..._blank-line-between-methods_notebook.snap} | 0 ...ank-line-between-methods_typing_stub.snap} | 0 ...nes-after-function-or-class_notebook.snap} | 0 ...-after-function-or-class_typing_stub.snap} | 0 ...es-before-nested-definition_notebook.snap} | 0 ...before-nested-definition_typing_stub.snap} | 0 ...lines_blank-lines-top-level_notebook.snap} | 0 ...es_blank-lines-top-level_typing_stub.snap} | 0 ..._lines_too-many-blank-lines_notebook.snap} | 0 ...nes_too-many-blank-lines_typing_stub.snap} | 0 ...with-invalid-multiple-comment_E11.py.snap} | 0 ...ntation-with-invalid-multiple_E11.py.snap} | 0 ...s__invalid-escape-sequence_W605_0.py.snap} | 0 ...s__invalid-escape-sequence_W605_1.py.snap} | 0 ...le__tests__lambda-assignment_E731.py.snap} | 0 ...estyle__tests__line-too-long_E501.py.snap} | 0 ...tyle__tests__line-too-long_E501_3.py.snap} | 0 ...tyle__tests__line-too-long_E501_4.py.snap} | 0 ...ing-newline-at-end-of-file_W292_0.py.snap} | 0 ...ing-newline-at-end-of-file_W292_1.py.snap} | 0 ...ing-newline-at-end-of-file_W292_2.py.snap} | 0 ...ing-newline-at-end-of-file_W292_3.py.snap} | 0 ...sing-whitespace-after-keyword_E27.py.snap} | 0 ...ce-around-arithmetic-operator_E22.py.snap} | 0 ...und-bitwise-or-shift-operator_E22.py.snap} | 0 ...espace-around-modulo-operator_E22.py.snap} | 0 ...ng-whitespace-around-operator_E22.py.snap} | 0 ...space-around-parameter-equals_E25.py.snap} | 0 ...le__tests__missing-whitespace_E23.py.snap} | 0 ...tests__mixed-spaces-and-tabs_E101.py.snap} | 0 ...ule-import-not-at-top-of-file_E40.py.snap} | 0 ...import-not-at-top-of-file_E402.ipynb.snap} | 0 ...-import-not-at-top-of-file_E402_0.py.snap} | 0 ...-import-not-at-top-of-file_E402_1.py.snap} | 0 ...-import-not-at-top-of-file_E402_2.py.snap} | 0 ...-import-not-at-top-of-file_E402_3.py.snap} | 0 ...-import-not-at-top-of-file_E402_4.py.snap} | 0 ...-import-not-at-top-of-file_E402_5.py.snap} | 0 ..._multiple-imports-on-one-line_E40.py.snap} | 0 ...ding-hashes-for-block-comment_E26.py.snap} | 0 ...__multiple-spaces-after-comma_E24.py.snap} | 0 ...multiple-spaces-after-keyword_E27.py.snap} | 0 ...ultiple-spaces-after-operator_E22.py.snap} | 0 ...ultiple-spaces-before-keyword_E27.py.snap} | 0 ...ltiple-spaces-before-operator_E22.py.snap} | 0 ...-statements-on-one-line-colon_E70.py.snap} | 0 ...tements-on-one-line-semicolon_E70.py.snap} | 0 ...ts__no-indented-block-comment_E11.py.snap} | 0 ...yle__tests__no-indented-block_E11.py.snap} | 0 ..._no-space-after-block-comment_E26.py.snap} | 0 ...no-space-after-inline-comment_E26.py.snap} | 0 ...tyle__tests__none-comparison_E711.py.snap} | 0 ...odestyle__tests__not-in-test_E713.py.snap} | 0 ...odestyle__tests__not-is-test_E714.py.snap} | 0 ...destyle__tests__over-indented_E11.py.snap} | 0 ...ts__preview__line-too-long_E501_5.py.snap} | 0 ...ule-import-not-at-top-of-file_E40.py.snap} | 0 ...import-not-at-top-of-file_E402.ipynb.snap} | 0 ...-import-not-at-top-of-file_E402_0.py.snap} | 0 ...-import-not-at-top-of-file_E402_1.py.snap} | 0 ...-import-not-at-top-of-file_E402_2.py.snap} | 0 ...-import-not-at-top-of-file_E402_3.py.snap} | 0 ...-import-not-at-top-of-file_E402_4.py.snap} | 0 ...-import-not-at-top-of-file_E402_5.py.snap} | 0 ...-not-at-top-of-file_E402_comments.py.snap} | 0 ...not-at-top-of-file_E402_docstring.py.snap} | 0 ...rt-not-at-top-of-file_E402_future.py.snap} | 0 ...t-not-at-top-of-file_E402_shebang.py.snap} | 0 ...E402_shebang_docstring_and_future.py.snap} | 0 ...preview__redundant-backslash_E502.py.snap} | 0 ...y-newlines-at-end-of-file_W391.ipynb.snap} | 0 ...ny-newlines-at-end-of-file_W391_0.py.snap} | 0 ...ny-newlines-at-end-of-file_W391_1.py.snap} | 0 ...ny-newlines-at-end-of-file_W391_2.py.snap} | 0 ...ny-newlines-at-end-of-file_W391_3.py.snap} | 0 ...ny-newlines-at-end-of-file_W391_4.py.snap} | 0 ...style__tests__tab-after-comma_E24.py.snap} | 0 ...yle__tests__tab-after-keyword_E27.py.snap} | 0 ...le__tests__tab-after-operator_E22.py.snap} | 0 ...le__tests__tab-before-keyword_E27.py.snap} | 0 ...e__tests__tab-before-operator_E22.py.snap} | 0 ...style__tests__tab-indentation_W19.py.snap} | 0 ...-spaces-before-inline-comment_E26.py.snap} | 0 ...__tests__too-many-blank-lines_E30.py.snap} | 0 ...ank-lines_E303_first_line_comment.py.snap} | 0 ...k-lines_E303_first_line_docstring.py.snap} | 0 ...-lines_E303_first_line_expression.py.snap} | 0 ...k-lines_E303_first_line_statement.py.snap} | 0 ...many-blank-lines_E30_syntax_error.py.snap} | 0 ...e__tests__trailing-whitespace_W29.py.snap} | 0 ...__tests__trailing-whitespace_W291.py.snap} | 0 ...tests__true-false-comparison_E712.py.snap} | 0 ...tyle__tests__type-comparison_E721.py.snap} | 0 ...nexpected-indentation-comment_E11.py.snap} | 0 ...tests__unexpected-indentation_E11.py.snap} | 0 ...ound-keyword-parameter-equals_E25.py.snap} | 0 ...yle__tests__useless-semicolon_E70.py.snap} | 0 ..._tests__useless-semicolon_E703.ipynb.snap} | 0 ...__whitespace-after-decorator_E204.py.snap} | 0 ...whitespace-after-open-bracket_E20.py.snap} | 0 ...itespace-before-close-bracket_E20.py.snap} | 0 ..._whitespace-before-parameters_E21.py.snap} | 0 ...whitespace-before-punctuation_E20.py.snap} | 0 .../ruff_linter/src/rules/pydocstyle/mod.rs | 2 +- ...ests__blank-line-after-function_D.py.snap} | 0 ...s__blank-line-after-function_D202.py.snap} | 0 ..._tests__blank-line-before-class_D.py.snap} | 0 ...sts__blank-line-before-function_D.py.snap} | 0 ...tween-header-and-content_sections.py.snap} | 0 ...between-header-and-content_sphinx.py.snap} | 0 ...sts__docstring-starts-with-this_D.py.snap} | 0 ...ests__docstring-tab-indentation_D.py.snap} | 0 ..._empty-docstring-section_sections.py.snap} | 0 ...ocstyle__tests__empty-docstring_D.py.snap} | 0 ...s__escape-sequence-in-docstring_D.py.snap} | 0 ...escape-sequence-in-docstring_D301.py.snap} | 0 ...tests__first-word-uncapitalized_D.py.snap} | 0 ...ts__first-word-uncapitalized_D403.py.snap} | 0 ...ncorrect-blank-line-after-class_D.py.snap} | 0 ...correct-blank-line-before-class_D.py.snap} | 0 ...section-underline-length_sections.py.snap} | 0 ...lank-line-after-last-section_D413.py.snap} | 0 ...-line-after-last-section_sections.py.snap} | 0 ...ter-last-section_sphinx_directive.py.snap} | 0 ...issing-blank-line-after-summary_D.py.snap} | 0 ...-underline-after-section_sections.py.snap} | 0 ...-line-after-section-name_sections.py.snap} | 0 ...sts__missing-section-name-colon_D.py.snap} | 0 ...ion-underline-after-name_sections.py.snap} | 0 ...s__missing-terminal-punctuation_D.py.snap} | 0 ...ing-terminal-punctuation_D400_415.py.snap} | 0 ..._tests__missing-trailing-period_D.py.snap} | 0 ...sts__missing-trailing-period_D400.py.snap} | 0 ..._missing-trailing-period_D400_415.py.snap} | 0 ...__multi-line-summary-first-line_D.py.snap} | 0 ..._multi-line-summary-second-line_D.py.snap} | 0 ...__new-line-after-last-paragraph_D.py.snap} | 0 ..._no-blank-line-after-section_D410.py.snap} | 0 ...blank-line-after-section_sections.py.snap} | 0 ...lank-line-before-section_sections.py.snap} | 0 ...capitalized-section-name_sections.py.snap} | 0 ...zed-section-name_sphinx_directive.py.snap} | 0 ...__tests__non-imperative-mood_D401.py.snap} | 0 ...cstyle__tests__over-indentation_D.py.snap} | 0 ...yle__tests__over-indentation_D208.py.snap} | 0 ...erindented-section-underline_D215.py.snap} | 0 ...dented-section-underline_sections.py.snap} | 0 ..._overindented-section_D214_module.py.snap} | 0 ...ts__overindented-section_sections.py.snap} | 0 ...indented-section_sphinx_directive.py.snap} | 0 ..._tests__overload-with-docstring_D.py.snap} | 0 ...ts__overload-with-docstring_D418.pyi.snap} | 0 ...y-docstring-starts-with-verb_D421.py.snap} | 0 ...__tests__signature-in-docstring_D.py.snap} | 0 ...ests__signature-in-docstring_D402.py.snap} | 0 ...__tests__surrounding-whitespace_D.py.snap} | 0 ...le__tests__triple-single-quotes_D.py.snap} | 0 ..._tests__triple-single-quotes_D300.py.snap} | 0 ...style__tests__under-indentation_D.py.snap} | 0 ...ests__undocumented-magic-method_D.py.snap} | 0 ...d-param_canonical_google_examples.py.snap} | 0 ...ed-param_canonical_numpy_examples.py.snap} | 0 ...ests__undocumented-param_sections.py.snap} | 0 ...ests__undocumented-public-class_D.py.snap} | 0 ...s__undocumented-public-function_D.py.snap} | 0 ...tests__undocumented-public-init_D.py.snap} | 0 ...sts__undocumented-public-method_D.py.snap} | 0 ...undocumented-public-method_setter.py.snap} | 0 ...sts__undocumented-public-module_D.py.snap} | 0 ...ndocumented-public-module_D100.ipynb.snap} | 0 ...c-module__unrelated___no_pkg_priv.py.snap} | 0 ...-module__unrelated__pkg__D100_pub.py.snap} | 0 ...related__pkg___priv__no_D100_priv.py.snap} | 0 ...ndocumented-public-nested-class_D.py.snap} | 0 ...ts__undocumented-public-package_D.py.snap} | 1 + ...ted-public-package_D104____init__.py.snap} | 0 ...unnecessary-multiline-docstring_D.py.snap} | 0 ...ecessary-multiline-docstring_D200.py.snap} | 0 crates/ruff_linter/src/rules/pyflakes/mod.rs | 24 +++++------------- ...yflakes__tests__assert-tuple_F631.py.snap} | 0 ...s__tests__break-outside-loop_F701.py.snap} | 0 ...tests__continue-outside-loop_F702.py.snap} | 0 ...sts__default-except-not-last_F707.py.snap} | 0 ...-string-missing-placeholders_F541.py.snap} | 0 ...ward-annotation-syntax-error_F722.py.snap} | 0 ...rd-annotation-syntax-error_F722_1.py.snap} | 0 ...__future-feature-not-defined_F407.py.snap} | 0 ...s__pyflakes__tests__if-tuple_F634.py.snap} | 0 ...port-shadowed-by-loop-var_F402.ipynb.snap} | 0 ..._import-shadowed-by-loop-var_F402.py.snap} | 0 ..._tests__invalid-print-syntax_F633.py.snap} | 0 ..._pyflakes__tests__is-literal_F632.py.snap} | 0 ..._tests__late-future-import_F404_0.py.snap} | 0 ..._tests__late-future-import_F404_1.py.snap} | 0 ...i-value-repeated-key-literal_F601.py.snap} | 0 ...-value-repeated-key-variable_F602.py.snap} | 0 ...multiple-starred-expressions_F622.py.snap} | 0 ...cent-format-expected-mapping_F502.py.snap} | 0 ...cent-format-expected-mapping_F50x.py.snap} | 0 ...ent-format-expected-sequence_F503.py.snap} | 0 ...ent-format-expected-sequence_F50x.py.snap} | 0 ...format-extra-named-arguments_F504.py.snap} | 0 ...format-extra-named-arguments_F50x.py.snap} | 0 ...ercent-format-invalid-format_F50x.py.snap} | 0 ...cent-format-missing-argument_F504.py.snap} | 0 ...cent-format-missing-argument_F50x.py.snap} | 0 ...t-mixed-positional-and-named_F50x.py.snap} | 0 ...at-positional-count-mismatch_F50x.py.snap} | 0 ...ormat-star-requires-sequence_F50x.py.snap} | 0 ...unsupported-format-character_F50x.py.snap} | 0 ...w__redefined-while-unused_F811_36.py.snap} | 0 ...review__undefined-export___init__.py.snap} | 0 ...__unused-import_F401_24____init__.py.snap} | 0 ...t_F401_25__all_nonempty____init__.py.snap} | 0 ...port_F401_26__all_empty____init__.py.snap} | 0 ...t_F401_27__all_mistyped____init__.py.snap} | 0 ...t_F401_28__all_multiple____init__.py.snap} | 0 ...401_29__all_conditional____init__.py.snap} | 0 ...__unused-import_F401_33____init__.py.snap} | 0 ...__preview__unused-import___init__.py.snap} | 0 ...tests__raise-not-implemented_F901.py.snap} | 0 ...ts__redefined-while-unused_F811_0.py.snap} | 0 ...ts__redefined-while-unused_F811_1.py.snap} | 0 ...s__redefined-while-unused_F811_10.py.snap} | 0 ...s__redefined-while-unused_F811_11.py.snap} | 0 ...s__redefined-while-unused_F811_12.py.snap} | 0 ...s__redefined-while-unused_F811_13.py.snap} | 0 ...s__redefined-while-unused_F811_14.py.snap} | 0 ...s__redefined-while-unused_F811_15.py.snap} | 0 ...s__redefined-while-unused_F811_16.py.snap} | 0 ...s__redefined-while-unused_F811_17.py.snap} | 0 ...s__redefined-while-unused_F811_18.py.snap} | 0 ...s__redefined-while-unused_F811_19.py.snap} | 0 ...ts__redefined-while-unused_F811_2.py.snap} | 0 ...s__redefined-while-unused_F811_20.py.snap} | 0 ...s__redefined-while-unused_F811_21.py.snap} | 0 ...s__redefined-while-unused_F811_22.py.snap} | 0 ...s__redefined-while-unused_F811_23.py.snap} | 0 ...s__redefined-while-unused_F811_24.py.snap} | 0 ...s__redefined-while-unused_F811_25.py.snap} | 0 ...s__redefined-while-unused_F811_26.py.snap} | 0 ...s__redefined-while-unused_F811_27.py.snap} | 0 ...s__redefined-while-unused_F811_28.py.snap} | 0 ...__redefined-while-unused_F811_29.pyi.snap} | 0 ...ts__redefined-while-unused_F811_3.py.snap} | 0 ...s__redefined-while-unused_F811_30.py.snap} | 0 ...s__redefined-while-unused_F811_31.py.snap} | 0 ...s__redefined-while-unused_F811_32.py.snap} | 0 ...__redefined-while-unused_F811_33.pyi.snap} | 0 ...s__redefined-while-unused_F811_35.py.snap} | 0 ...s__redefined-while-unused_F811_36.py.snap} | 0 ...ts__redefined-while-unused_F811_4.py.snap} | 0 ...ts__redefined-while-unused_F811_5.py.snap} | 0 ...ts__redefined-while-unused_F811_6.py.snap} | 0 ...ts__redefined-while-unused_F811_7.py.snap} | 0 ...ts__redefined-while-unused_F811_8.py.snap} | 0 ...ts__redefined-while-unused_F811_9.py.snap} | 0 ...sts__return-outside-function_F706.py.snap} | 0 ...format-extra-named-arguments_F522.py.snap} | 0 ...t-extra-positional-arguments_F523.py.snap} | 0 ...ng-dot-format-invalid-format_F521.py.snap} | 0 ...dot-format-missing-arguments_F524.py.snap} | 0 ...-dot-format-mixing-automatic_F525.py.snap} | 0 ...s__tests__undefined-export_F822_0.py.snap} | 0 ...__tests__undefined-export_F822_0.pyi.snap} | 0 ...s__tests__undefined-export_F822_1.py.snap} | 0 ...__tests__undefined-export_F822_1b.py.snap} | 0 ...s__tests__undefined-export_F822_2.py.snap} | 0 ...s__tests__undefined-export_F822_3.py.snap} | 0 ...local-with-import-star-usage_F405.py.snap} | 0 ...fined-local-with-import-star_F403.py.snap} | 0 ...ith-nested-import-star-usage_F406.py.snap} | 0 ...akes__tests__undefined-local_F823.py.snap} | 0 ...kes__tests__undefined-name_F821_0.py.snap} | 0 ...kes__tests__undefined-name_F821_1.py.snap} | 0 ...es__tests__undefined-name_F821_10.py.snap} | 0 ...es__tests__undefined-name_F821_11.py.snap} | 0 ...s__tests__undefined-name_F821_11.pyi.snap} | 0 ...es__tests__undefined-name_F821_12.py.snap} | 0 ...es__tests__undefined-name_F821_13.py.snap} | 0 ...es__tests__undefined-name_F821_14.py.snap} | 0 ...es__tests__undefined-name_F821_15.py.snap} | 0 ...es__tests__undefined-name_F821_16.py.snap} | 0 ...es__tests__undefined-name_F821_17.py.snap} | 0 ...es__tests__undefined-name_F821_18.py.snap} | 0 ...es__tests__undefined-name_F821_19.py.snap} | 0 ...kes__tests__undefined-name_F821_2.py.snap} | 0 ...es__tests__undefined-name_F821_20.py.snap} | 0 ...es__tests__undefined-name_F821_21.py.snap} | 0 ..._tests__undefined-name_F821_22.ipynb.snap} | 0 ...es__tests__undefined-name_F821_23.py.snap} | 0 ...es__tests__undefined-name_F821_24.py.snap} | 0 ...es__tests__undefined-name_F821_25.py.snap} | 0 ...es__tests__undefined-name_F821_26.py.snap} | 0 ...s__tests__undefined-name_F821_26.pyi.snap} | 0 ...es__tests__undefined-name_F821_27.py.snap} | 0 ...es__tests__undefined-name_F821_28.py.snap} | 0 ...es__tests__undefined-name_F821_29.py.snap} | 0 ...kes__tests__undefined-name_F821_3.py.snap} | 0 ...es__tests__undefined-name_F821_30.py.snap} | 0 ...es__tests__undefined-name_F821_31.py.snap} | 0 ...s__tests__undefined-name_F821_32.pyi.snap} | 0 ...es__tests__undefined-name_F821_33.py.snap} | 0 ...es__tests__undefined-name_F821_34.py.snap} | 0 ...s__tests__undefined-name_F821_34.pyi.snap} | 0 ...kes__tests__undefined-name_F821_4.py.snap} | 0 ...kes__tests__undefined-name_F821_5.py.snap} | 0 ...es__tests__undefined-name_F821_5.pyi.snap} | 0 ...kes__tests__undefined-name_F821_6.py.snap} | 0 ...kes__tests__undefined-name_F821_7.py.snap} | 0 ...es__tests__undefined-name_F821_8.pyi.snap} | 0 ...kes__tests__undefined-name_F821_9.py.snap} | 0 ...es__tests__unused-annotation_F842.py.snap} | 0 ...akes__tests__unused-import_F401_0.py.snap} | 0 ...akes__tests__unused-import_F401_1.py.snap} | 0 ...kes__tests__unused-import_F401_10.py.snap} | 0 ...kes__tests__unused-import_F401_11.py.snap} | 0 ...kes__tests__unused-import_F401_12.py.snap} | 0 ...kes__tests__unused-import_F401_13.py.snap} | 0 ...kes__tests__unused-import_F401_14.py.snap} | 0 ...kes__tests__unused-import_F401_15.py.snap} | 0 ...kes__tests__unused-import_F401_16.py.snap} | 0 ...kes__tests__unused-import_F401_17.py.snap} | 0 ...kes__tests__unused-import_F401_18.py.snap} | 0 ...kes__tests__unused-import_F401_19.py.snap} | 0 ...akes__tests__unused-import_F401_2.py.snap} | 0 ...kes__tests__unused-import_F401_20.py.snap} | 0 ...kes__tests__unused-import_F401_21.py.snap} | 0 ...kes__tests__unused-import_F401_22.py.snap} | 0 ...kes__tests__unused-import_F401_23.py.snap} | 0 ...akes__tests__unused-import_F401_3.py.snap} | 0 ...kes__tests__unused-import_F401_32.py.snap} | 0 ...kes__tests__unused-import_F401_34.py.snap} | 0 ...akes__tests__unused-import_F401_4.py.snap} | 0 ...akes__tests__unused-import_F401_5.py.snap} | 0 ...akes__tests__unused-import_F401_6.py.snap} | 0 ...akes__tests__unused-import_F401_7.py.snap} | 0 ...akes__tests__unused-import_F401_8.py.snap} | 0 ...akes__tests__unused-import_F401_9.py.snap} | 0 ...precated_option_F401_24____init__.py.snap} | 0 ...n_F401_25__all_nonempty____init__.py.snap} | 0 ...tion_F401_26__all_empty____init__.py.snap} | 0 ...n_F401_27__all_mistyped____init__.py.snap} | 0 ...n_F401_28__all_multiple____init__.py.snap} | 0 ...401_29__all_conditional____init__.py.snap} | 0 ...-import_deprecated_option_F401_30.py.snap} | 0 ...d-import_stable_F401_24____init__.py.snap} | 0 ...e_F401_25__all_nonempty____init__.py.snap} | 0 ...able_F401_26__all_empty____init__.py.snap} | 0 ...e_F401_27__all_mistyped____init__.py.snap} | 0 ...e_F401_28__all_multiple____init__.py.snap} | 0 ...401_29__all_conditional____init__.py.snap} | 0 ...es__tests__unused-variable_F841_0.py.snap} | 0 ...es__tests__unused-variable_F841_1.py.snap} | 0 ...es__tests__unused-variable_F841_2.py.snap} | 0 ...es__tests__unused-variable_F841_3.py.snap} | 0 ...ests__yield-outside-function_F704.py.snap} | 0 .../ruff_linter/src/rules/pygrep_hooks/mod.rs | 8 ++---- ...oks__tests__blanket-noqa_PGH004_0.py.snap} | 0 ...oks__tests__blanket-noqa_PGH004_1.py.snap} | 0 ...oks__tests__blanket-noqa_PGH004_2.py.snap} | 0 ...oks__tests__blanket-noqa_PGH004_3.py.snap} | 0 ...sts__blanket-type-ignore_PGH003_0.py.snap} | 0 ...sts__blanket-type-ignore_PGH003_1.py.snap} | 0 ...sts__invalid-mock-access_PGH005_0.py.snap} | 0 ...iew__invalid-mock-access_PGH005_0.py.snap} | 0 crates/ruff_linter/src/rules/pylint/mod.rs | 8 ++---- ...-literal_assert_on_string_literal.py.snap} | 0 ...side-async_await_outside_async.ipynb.snap} | 0 ...outside-async_await_outside_async.py.snap} | 0 ...ethod-name_bad_dunder_method_name.py.snap} | 0 ...ests__bad-open-mode_bad_open_mode.py.snap} | 0 ...rgument_bad_staticmethod_argument.py.snap} | 0 ...str-strip-call_bad_str_strip_call.py.snap} | 0 ...acter_bad_string_format_character.py.snap} | 0 ...ormat-type_bad_string_format_type.py.snap} | 0 ...nal-unicode_bidirectional_unicode.py.snap} | 0 ...-op-exception_binary_op_exception.py.snap} | 0 ...arison_boolean_chained_comparison.py.snap} | 0 ...sible-else-if_collapsible_else_if.py.snap} | 0 ...ty-string_compare_to_empty_string.py.snap} | 0 ...f-constant_comparison_of_constant.py.snap} | 0 ...ith-itself_comparison_with_itself.py.snap} | 0 ...ue-in-finally_continue_in_finally.py.snap} | 0 ...ng-items_dict_index_missing_items.py.snap} | 0 ...ing-items_dict_iter_missing_items.py.snap} | 0 ...__duplicate-bases_duplicate_bases.py.snap} | 0 ...ests__empty-comment_empty_comment.py.snap} | 0 ...t_empty_comment_line_continuation.py.snap} | 0 ...__eq-without-hash_eq_without_hash.py.snap} | 0 ...dule-level_global_at_module_level.py.snap} | 0 ...global-statement_global_statement.py.snap} | 0 ...gned_global_variable_not_assigned.py.snap} | 0 ...__if-stmt-min-max_if_stmt_min_max.py.snap} | 0 ...op-level_import_outside_top_level.py.snap} | 0 ...private_name__submodule____main__.py.snap} | 0 ...__import-self_import_self__module.py.snap} | 0 ...lid-all-format_invalid_all_format.py.snap} | 0 ...lid-all-object_invalid_all_object.py.snap} | 0 ...urn-type_invalid_return_type_bool.py.snap} | 0 ...rn-type_invalid_return_type_bytes.py.snap} | 0 ...cter-backspace_invalid_characters.py.snap} | 0 ...e_invalid_characters_syntax_error.py.snap} | 0 ...-character-esc_invalid_characters.py.snap} | 0 ...-character-nul_invalid_characters.py.snap} | Bin ...-character-sub_invalid_characters.py.snap} | 0 ...ro-width-space_invalid_characters.py.snap} | 0 ...ar-default_invalid_envvar_default.py.snap} | 0 ...envvar-value_invalid_envvar_value.py.snap} | 0 ...urn-type_invalid_return_type_hash.py.snap} | 0 ...rn-type_invalid_return_type_index.py.snap} | 0 ...n-type_invalid_return_type_length.py.snap} | 0 ...turn-type_invalid_return_type_str.py.snap} | 0 ...ation-over-set_iteration_over_set.py.snap} | 0 ..._tests__len-test_len_as_condition.py.snap} | 0 ...ral-membership_literal_membership.py.snap} | 0 ...on_load_before_global_declaration.py.snap} | 0 ...too-few-args_logging_too_few_args.py.snap} | 0 ...o-many-args_logging_too_many_args.py.snap} | 0 ...comparison_magic_value_comparison.py.snap} | 0 ...anual-from-import_import_aliasing.py.snap} | 0 ...d-bare-raise_misplaced_bare_raise.py.snap} | 0 ...maxsplit-arg_missing_maxsplit_arg.py.snap} | 0 ...rating-set_modified_iterating_set.py.snap} | 0 ...ontext_named_expr_without_context.py.snap} | 0 ...ts__nan-comparison_nan_comparison.py.snap} | 0 ...ts__nested-min-max_nested_min_max.py.snap} | 0 ...hod-decorator_no_method_decorator.py.snap} | 0 ...t__tests__no-self-use_no_self_use.py.snap} | 0 ...hod-decorator_no_method_decorator.py.snap} | 0 ...port-name_non_ascii_module_import.py.snap} | 0 ...ts__non-ascii-name_non_ascii_name.py.snap} | 0 ...signment_non_augmented_assignment.py.snap} | 0 ...ot-assignment_non_slot_assignment.py.snap} | 0 ...al-and-global_nonlocal_and_global.py.snap} | 0 ...-binding_nonlocal_without_binding.py.snap} | 0 ...index-error_potential_index_error.py.snap} | 0 ...ement_useless_exception_statement.py.snap} | 0 ...rameters_property_with_parameters.py.snap} | 0 ...ned-name_redeclared_assigned_name.py.snap} | 0 ...cal_redefined_argument_from_local.py.snap} | 0 ...ned-loop-name_redefined_loop_name.py.snap} | 0 ...class_redefined_slots_in_subclass.py.snap} | 0 ...ison_repeated_equality_comparison.py.snap} | 0 ...rgument_repeated_keyword_argument.py.snap} | 0 ...ts__return-in-init_return_in_init.py.snap} | 0 ...-variable_self_assigning_variable.py.snap} | 0 ...assignment_self_or_cls_assignment.py.snap} | 0 ...copy-environ_shallow_copy_environ.py.snap} | 0 ...-string-slots_single_string_slots.py.snap} | 0 ...atch-method_singledispatch_method.py.snap} | 0 ...ion_singledispatchmethod_function.py.snap} | 0 ...tion-return_stop_iteration_return.py.snap} | 0 ...ec-fn_subprocess_popen_preexec_fn.py.snap} | 0 ...heck_subprocess_run_without_check.py.snap} | 0 ...t-brackets_super_without_brackets.py.snap} | 0 ...able_swap_with_temporary_variable.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_0.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_1.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_10.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_11.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_12.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_13.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_14.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_15.py.snap} | 0 ..._sys-exit-alias_sys_exit_alias_16.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_2.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_3.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_4.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_5.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_6.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_7.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_8.py.snap} | 0 ...__sys-exit-alias_sys_exit_alias_9.py.snap} | 0 ...many-arguments_too_many_arguments.py.snap} | 0 ...o-many-branches_too_many_branches.py.snap} | 0 ...ted-blocks_too_many_nested_blocks.py.snap} | 0 ...nts_too_many_positional_arguments.py.snap} | 0 ...ements_too_many_return_statements.py.snap} | 0 ...ry-clause_too_many_try_statements.py.snap} | 0 ...ny-statements_too_many_statements.py.snap} | 0 ...__type-bivariance_type_bivariance.py.snap} | 0 ...ance_type_name_incorrect_variance.py.snap} | 0 ...mismatch_type_param_name_mismatch.py.snap} | 0 ...expected_special_method_signature.py.snap} | 0 ...kup_unnecessary_dict_index_lookup.py.snap} | 0 ...ll_unnecessary_direct_lambda_call.py.snap} | 0 ...nder-call_unnecessary_dunder_call.py.snap} | 0 ...cessary-lambda_unnecessary_lambda.py.snap} | 0 ...kup_unnecessary_list_index_lookup.py.snap} | 0 ...sts__unreachable-code_unreachable.py.snap} | 0 ...ied-encoding_unspecified_encoding.py.snap} | 0 ...else-on-loop_useless_else_on_loop.py.snap} | 0 ...ement_useless_exception_statement.py.snap} | 0 ...less-import-alias_import_aliasing.py.snap} | 0 ...alias_import_aliasing_2____init__.py.snap} | 0 ...ts__useless-return_useless_return.py.snap} | 0 ...eless-with-lock_useless_with_lock.py.snap} | 0 ...tion_yield_from_in_async_function.py.snap} | 0 ...ests__yield-in-init_yield_in_init.py.snap} | 0 crates/ruff_linter/src/rules/refurb/mod.rs | 2 +- ..._refurb__tests__bit-count_FURB161.py.snap} | 0 ...check-and-remove-from-set_FURB132.py.snap} | 0 ..._tests__delete-full-slice_FURB131.py.snap} | 0 ...s__f-string-number-format_FURB116.py.snap} | 0 ...s__for-loop-set-mutations_FURB142.py.snap} | 0 ...b__tests__for-loop-writes_FURB122.py.snap} | 0 ...__fromisoformat-replace-z_FURB162.py.snap} | 0 ..._hardcoded-string-charset_FURB156.py.snap} | 0 ...tests__hashlib-digest-hex_FURB181.py.snap} | 0 ...xp-instead-of-or-operator_FURB110.py.snap} | 0 ...b__tests__if-expr-min-max_FURB136.py.snap} | 0 ...furb__tests__implicit-cwd_FURB177.py.snap} | 0 ..._tests__int-on-sliced-str_FURB166.py.snap} | 0 ...sts__isinstance-type-none_FURB168.py.snap} | 0 ..._tests__list-reverse-copy_FURB187.py.snap} | 0 ...urb__tests__math-constant_FURB152.py.snap} | 0 ...ests__meta-class-abc-meta_FURB180.py.snap} | 0 ...tests__print-empty-string_FURB105.py.snap} | 0 ..._tests__read-whole-file_FURB101_0.py.snap} | 0 ..._tests__read-whole-file_FURB101_1.py.snap} | 0 ..._tests__read-whole-file_FURB101_2.py.snap} | 0 ...__tests__readlines-in-for_FURB129.py.snap} | 0 ...tests__redundant-log-base_FURB163.py.snap} | 0 ...__tests__regex-flag-alias_FURB167.py.snap} | 0 ...s__reimplemented-operator_FURB118.py.snap} | 0 ...ts__reimplemented-starmap_FURB140.py.snap} | 0 ...b__tests__repeated-append_FURB113.py.snap} | 0 ...b__tests__repeated-global_FURB154.py.snap} | 0 ...le-item-membership-test_FURB171_0.py.snap} | 0 ...le-item-membership-test_FURB171_1.py.snap} | 0 ...refurb__tests__slice-copy_FURB145.py.snap} | 0 ...o-remove-prefix-or-suffix_FURB188.py.snap} | 0 ...rb__tests__sorted-min-max_FURB192.py.snap} | 0 ...__tests__sorted-min-max_FURB192_1.py.snap} | 0 ...__tests__subclass-builtin_FURB189.py.snap} | 0 ...sts__type-none-comparison_FURB169.py.snap} | 0 ...ts__unnecessary-enumerate_FURB148.py.snap} | 0 ...s__unnecessary-from-float_FURB164.py.snap} | 0 ...rbose-decimal-constructor_FURB157.py.snap} | 0 ...tests__write-whole-file_FURB103_0.py.snap} | 0 ...tests__write-whole-file_FURB103_1.py.snap} | 0 ...tests__write-whole-file_FURB103_2.py.snap} | 0 crates/ruff_linter/src/rules/ruff/mod.rs | 24 ++++++------------ ...__PY39_implicit-optional_RUF013_0.py.snap} | 0 ...__PY39_implicit-optional_RUF013_1.py.snap} | 0 ..._assert-with-print-message_RUF030.py.snap} | 0 ...ests__assignment-in-assert_RUF018.py.snap} | 0 ...sts__asyncio-dangling-task_RUF006.py.snap} | 0 ...class-with-mixed-type-vars_RUF053.py.snap} | 0 ...tion-literal-concatenation_RUF005.py.snap} | 0 ...teral-concatenation_RUF005_slices.py.snap} | 0 ...t__used-dummy-variable_RUF052_0.py_1.snap} | 0 ...t__used-dummy-variable_RUF052_0.py_2.snap} | 0 ...uff__tests__dataclass-enum_RUF049.py.snap} | 0 ...decimal-from-float-literal_RUF032.py.snap} | 0 ...sts__default-factory-kwarg_RUF026.py.snap} | 0 ...licate-entry-in-dunder-all_RUF068.py.snap} | 0 ...t-f-string-type-conversion_RUF010.py.snap} | 0 ...s__falsy-dict-get-fallback_RUF056.py.snap} | 0 ...dataclass-default-argument_RUF009.py.snap} | 0 ...ass-default-argument_RUF009_attrs.py.snap} | 0 ...rgument_RUF009_attrs_auto_attribs.py.snap} | 0 ...-default-argument_RUF009_deferred.py.snap} | 0 ..._tests__if-key-in-dict-del_RUF051.py.snap} | 0 ...tests__implicit-optional_RUF013_0.py.snap} | 0 ...tests__implicit-optional_RUF013_1.py.snap} | 0 ...tests__implicit-optional_RUF013_2.py.snap} | 0 ...tests__implicit-optional_RUF013_3.py.snap} | 0 ...tests__implicit-optional_RUF013_4.py.snap} | 0 ...tests__in-empty-collection_RUF060.py.snap} | 0 ..._incorrect-decorator-order_RUF074.py.snap} | 0 ...hesized-tuple-in-subscript_RUF031.py.snap} | 0 ...t-message-literal-argument_RUF040.py.snap} | 0 ...matter-suppression-comment_RUF028.py.snap} | 0 ..._tests__invalid-index-type_RUF016.py.snap} | 0 ...tests__invalid-pyproject-toml_bleach.snap} | 0 ...nvalid-pyproject-toml_invalid_author.snap} | 0 ...ests__invalid-pyproject-toml_maturin.snap} | 0 ...tests__invalid-pyproject-toml_pep639.snap} | 0 ...valid-pyproject-toml_various_invalid.snap} | 0 ...__tests__invalid-rule-code_RUF102.py.snap} | 0 ...tests__invalid-rule-code_RUF102_1.py.snap} | 0 ...est-raises_RUF061_deprecated_call.py.snap} | 0 ...-form-pytest-raises_RUF061_raises.py.snap} | 0 ...y-form-pytest-raises_RUF061_warns.py.snap} | 0 ...logging-eager-conversion_RUF065_0.py.snap} | 0 ...logging-eager-conversion_RUF065_1.py.snap} | 0 ...s__map-int-version-parsing_RUF048.py.snap} | 0 ..._map-int-version-parsing_RUF048_1.py.snap} | 0 ..._missing-f-string-syntax_RUF027_0.py.snap} | 0 ..._missing-f-string-syntax_RUF027_1.py.snap} | 0 ..._missing-f-string-syntax_RUF027_2.py.snap} | 0 ...sts__mutable-class-default_RUF012.py.snap} | 1 - ...ble-class-default_RUF012_deferred.py.snap} | 0 ..._mutable-dataclass-default_RUF008.py.snap} | 0 ...le-dataclass-default_RUF008_attrs.py.snap} | 0 ...dataclass-default_RUF008_deferred.py.snap} | 0 ...ts__mutable-fromkeys-value_RUF024.py.snap} | 0 ...__tests__needless-else_RUF047_for.py.snap} | 0 ...f__tests__needless-else_RUF047_if.py.snap} | 0 ...__tests__needless-else_RUF047_try.py.snap} | 0 ...tests__needless-else_RUF047_while.py.snap} | 0 ...__ruff__tests__never-union_RUF020.py.snap} | 0 ...-module_RUF067__modules____init__.py.snap} | 0 ...init-module_RUF067__modules__okay.py.snap} | 0 ...sts__non-octal-permissions_RUF064.py.snap} | 0 ...__none-not-at-end-of-union_RUF036.py.snap} | 0 ..._none-not-at-end-of-union_RUF036.pyi.snap} | 0 ...nthesize-chained-operators_RUF021.py.snap} | 0 ...__tests__post-init-default_RUF033.py.snap} | 0 ...w__f-string-percent-format_RUF073.py.snap} | 0 ..._float-equality-comparison_RUF069.py.snap} | 0 ...cit-class-var-in-dataclass_RUF045.py.snap} | 0 ...review__indented-form-feed_RUF054.py.snap} | 0 ..._mutable-dataclass-default_RUF008.py.snap} | 0 ...le-dataclass-default_RUF008_attrs.py.snap} | 0 ...view__os-path-commonprefix_RUF071.py.snap} | 0 ...ttern_RUF039_py_version_sensitive.py.snap} | 0 ...ttern_RUF039_py_version_sensitive.py.snap} | 0 ...essary-assign-before-yield_RUF070.py.snap} | 0 ...ssary-regular-expression_RUF055_0.py.snap} | 0 ...ssary-regular-expression_RUF055_1.py.snap} | 0 ...ssary-regular-expression_RUF055_2.py.snap} | 0 ...ssary-regular-expression_RUF055_3.py.snap} | 0 ..._preview__unraw-re-pattern_RUF039.py.snap} | 0 ...w__unraw-re-pattern_RUF039_concat.py.snap} | 0 ...__preview__useless-finally_RUF072.py.snap} | 0 ...s__property-without-return_RUF066.py.snap} | 0 ...ests__py314__starmap-zip_RUF058_2.py.snap} | 0 ...t-raises-ambiguous-pattern_RUF043.py.snap} | 0 ...quadratic-list-summation_RUF017_0.py.snap} | 0 ...quadratic-list-summation_RUF017_1.py.snap} | 0 ...__tests__redirected-noqa_RUF101_0.py.snap} | 0 ...__tests__redirected-noqa_RUF101_1.py.snap} | 0 ...ts__redundant-bool-literal_RUF038.py.snap} | 0 ...s__redundant-bool-literal_RUF038.pyi.snap} | 0 ...ruff__tests__starmap-zip_RUF058_0.py.snap} | 0 ...ruff__tests__starmap-zip_RUF058_1.py.snap} | 0 ...s__unnecessary-cast-to-int_RUF046.py.snap} | 0 ...unnecessary-cast-to-int_RUF046_CR.py.snap} | 0 ...unnecessary-cast-to-int_RUF046_LF.py.snap} | 0 ...iterable-within-deque-call_RUF037.py.snap} | 0 ...uff__tests__unnecessary-if_RUF050.py.snap} | 0 ...location-for-first-element_RUF015.py.snap} | 0 ...sts__unnecessary-key-check_RUF019.py.snap} | 0 ...unnecessary-nested-literal_RUF041.py.snap} | 0 ...nnecessary-nested-literal_RUF041.pyi.snap} | 0 ...__tests__unnecessary-round_RUF057.py.snap} | 0 ...tests__unsorted-dunder-all_RUF022.py.snap} | 0 ...sts__unsorted-dunder-slots_RUF023.py.snap} | 0 ..._ruff__tests__unused-async_RUF029.py.snap} | 0 ...unused-unpacked-variable_RUF059_0.py.snap} | 0 ...unused-unpacked-variable_RUF059_1.py.snap} | 0 ...unused-unpacked-variable_RUF059_2.py.snap} | 0 ...unused-unpacked-variable_RUF059_3.py.snap} | 0 ...sts__used-dummy-variable_RUF052_0.py.snap} | 0 ...sts__used-dummy-variable_RUF052_1.py.snap} | 0 ...ff__tests__useless-if-else_RUF034.py.snap} | 0 ...s__zip-instead-of-pairwise_RUF007.py.snap} | 0 crates/ruff_wasm/tests/api.rs | 2 +- 1333 files changed, 86 insertions(+), 164 deletions(-) rename crates/ruff/src/commands/snapshots/{ruff__commands__check__test__E902_E902.py.snap => ruff__commands__check__test__io-error_E902.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR002_AIR002.py.snap => ruff_linter__rules__airflow__tests__airflow-dag-no-schedule-argument_AIR002.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR004_AIR004.py.snap => ruff_linter__rules__airflow__tests__airflow-task-branch-as-short-circuit_AIR004.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR004_AIR004_sdk.py.snap => ruff_linter__rules__airflow__tests__airflow-task-branch-as-short-circuit_AIR004_sdk.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR202_AIR202.py.snap => ruff_linter__rules__airflow__tests__airflow-task-implicit-multiple-outputs_AIR202.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR003_AIR003.py.snap => ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR003_AIR003_dag_decorator.py.snap => ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003_dag_decorator.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR003_AIR003_no_dag.py.snap => ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003_no_dag.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR001_AIR001.py.snap => ruff_linter__rules__airflow__tests__airflow-variable-name-task-id-mismatch_AIR001.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR201_AIR201.py.snap => ruff_linter__rules__airflow__tests__airflow-xcom-pull-in-template-string_AIR201.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR304_AIR304.py.snap => ruff_linter__rules__airflow__tests__airflow3-dag-dynamic-value_AIR304.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR303_AIR303.py.snap => ruff_linter__rules__airflow__tests__airflow3-incompatible-function-signature_AIR303.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_amazon.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_amazon.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_celery.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_celery.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_common_sql.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_common_sql.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_daskexecutor.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_daskexecutor.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_druid.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_druid.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_fab.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_fab.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_hdfs.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_hdfs.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_hive.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_hive.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_http.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_http.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_jdbc.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_jdbc.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_kubernetes.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_kubernetes.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_mysql.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_mysql.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_oracle.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_oracle.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_papermill.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_papermill.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_pig.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_pig.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_postgres.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_postgres.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_presto.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_presto.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_samba.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_samba.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_slack.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_slack.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_smtp.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_smtp.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_sqlite.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_sqlite.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_standard.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_standard.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_names_try.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_try.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_zendesk.py.snap => ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_zendesk.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_airflow_plugin.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_airflow_plugin.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_args.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_args.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_class_attribute.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_class_attribute.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_context.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_context.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_decorator.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_decorator.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_names.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_names_fix.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names_fix.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR302_AIR302_try.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names_try.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR301_AIR301_provider_names_fix.py.snap => ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_provider_names_fix.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR312_AIR312.py.snap => ruff_linter__rules__airflow__tests__airflow3-suggested-to-move-to-provider_AIR312.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR311_AIR311_try.py.snap => ruff_linter__rules__airflow__tests__airflow3-suggested-to-move-to-provider_AIR312_try.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR311_AIR311_args.py.snap => ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_args.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR311_AIR311_names.py.snap => ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_names.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR312_AIR312_try.py.snap => ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_try.py.snap} (100%) rename crates/ruff_linter/src/rules/airflow/snapshots/{ruff_linter__rules__airflow__tests__AIR321_AIR321_names.py.snap => ruff_linter__rules__airflow__tests__airflow31-moved_AIR321_names.py.snap} (100%) rename crates/ruff_linter/src/rules/eradicate/snapshots/{ruff_linter__rules__eradicate__tests__ERA001_ERA001.py.snap => ruff_linter__rules__eradicate__tests__commented-out-code_ERA001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT202_YTT202.py.snap => ruff_linter__rules__flake8_2020__tests__six-py3_YTT202.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT302_YTT302.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-cmp-str10_YTT302.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT103_YTT103.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-cmp-str3_YTT103.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT204_YTT204.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-info-minor-cmp-int_YTT204.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT201_YTT201.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-info0-eq3_YTT201.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT203_YTT203.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-info1-cmp-int_YTT203.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT303_YTT303.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-slice1_YTT303.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT101_YTT101.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version-slice3_YTT101.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT301_YTT301.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version0_YTT301.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_2020/snapshots/{ruff_linter__rules__flake8_2020__tests__YTT102_YTT102.py.snap => ruff_linter__rules__flake8_2020__tests__sys-version2_YTT102.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC110_ASYNC110.py.snap => ruff_linter__rules__flake8_async__tests__async-busy-wait_ASYNC110.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC109_ASYNC109_0.py.snap => ruff_linter__rules__flake8_async__tests__async-function-with-timeout_ASYNC109_0.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC109_ASYNC109_1.py.snap => ruff_linter__rules__flake8_async__tests__async-function-with-timeout_ASYNC109_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC115_ASYNC115.py.snap => ruff_linter__rules__flake8_async__tests__async-zero-sleep_ASYNC115.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC212_ASYNC212.py.snap => ruff_linter__rules__flake8_async__tests__blocking-http-call-httpx-in-async-function_ASYNC212.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC210_ASYNC210.py.snap => ruff_linter__rules__flake8_async__tests__blocking-http-call-in-async-function_ASYNC210.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC250_ASYNC250.py.snap => ruff_linter__rules__flake8_async__tests__blocking-input-in-async-function_ASYNC250.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC230_ASYNC230.py.snap => ruff_linter__rules__flake8_async__tests__blocking-open-call-in-async-function_ASYNC230.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC240_ASYNC240.py.snap => ruff_linter__rules__flake8_async__tests__blocking-path-method-in-async-function_ASYNC240.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC251_ASYNC251.py.snap => ruff_linter__rules__flake8_async__tests__blocking-sleep-in-async-function_ASYNC251.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC100_ASYNC100.py.snap => ruff_linter__rules__flake8_async__tests__cancel-scope-no-checkpoint_ASYNC100.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC220_ASYNC22x.py.snap => ruff_linter__rules__flake8_async__tests__create-subprocess-in-async-function_ASYNC22x.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC116_ASYNC116.py.snap => ruff_linter__rules__flake8_async__tests__long-sleep-not-forever_ASYNC116.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC221_ASYNC22x.py.snap => ruff_linter__rules__flake8_async__tests__run-process-in-async-function_ASYNC22x.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC105_ASYNC105.py.snap => ruff_linter__rules__flake8_async__tests__trio-sync-call_ASYNC105.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC222_ASYNC22x.py.snap => ruff_linter__rules__flake8_async__tests__wait-for-process-in-async-function_ASYNC22x.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_async/snapshots/{ruff_linter__rules__flake8_async__tests__ASYNC119_ASYNC119.py.snap => ruff_linter__rules__flake8_async__tests__yield-in-context-manager-in-async-generator_ASYNC119.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S101_S101.py.snap => ruff_linter__rules__flake8_bandit__tests__assert_S101.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S103_S103.py.snap => ruff_linter__rules__flake8_bandit__tests__bad-file-permissions_S103.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S604_S604.py.snap => ruff_linter__rules__flake8_bandit__tests__call-with-shell-equals-true_S604.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S610_S610.py.snap => ruff_linter__rules__flake8_bandit__tests__django-extra_S610.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S611_S611.py.snap => ruff_linter__rules__flake8_bandit__tests__django-raw-sql_S611.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S102_S102.py.snap => ruff_linter__rules__flake8_bandit__tests__exec-builtin_S102.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S201_S201.py.snap => ruff_linter__rules__flake8_bandit__tests__flask-debug-true_S201.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S104_S104.py.snap => ruff_linter__rules__flake8_bandit__tests__hardcoded-bind-all-interfaces_S104.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S107_S107.py.snap => ruff_linter__rules__flake8_bandit__tests__hardcoded-password-default_S107.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S106_S106.py.snap => ruff_linter__rules__flake8_bandit__tests__hardcoded-password-func-arg_S106.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S105_S105.py.snap => ruff_linter__rules__flake8_bandit__tests__hardcoded-password-string_S105.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S608_S608.py.snap => ruff_linter__rules__flake8_bandit__tests__hardcoded-sql-expression_S608.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S108_S108.py.snap => ruff_linter__rules__flake8_bandit__tests__hardcoded-temp-file_S108.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S324_S324.py.snap => ruff_linter__rules__flake8_bandit__tests__hashlib-insecure-hash-function_S324.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S701_S701.py.snap => ruff_linter__rules__flake8_bandit__tests__jinja2-autoescape-false_S701.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S612_S612.py.snap => ruff_linter__rules__flake8_bandit__tests__logging-config-insecure-listen_S612.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S702_S702.py.snap => ruff_linter__rules__flake8_bandit__tests__mako-templates_S702.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S601_S601.py.snap => ruff_linter__rules__flake8_bandit__tests__paramiko-call_S601.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S103_S103.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__bad-file-permissions_S103.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S307_S307.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__suspicious-eval-usage_S307.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S308_S308.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__suspicious-mark-safe-usage_S308.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S311_S311.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__suspicious-non-cryptographic-random-usage_S311.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S301_S301.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__suspicious-pickle-usage_S301.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S312_S312.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__suspicious-telnet-usage_S312.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S310_S310.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__suspicious-url-open-usage_S310.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__preview__S506_S506.py.snap => ruff_linter__rules__flake8_bandit__tests__preview__unsafe-yaml-load_S506.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S501_S501.py.snap => ruff_linter__rules__flake8_bandit__tests__request-with-no-cert-validation_S501.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S113_S113.py.snap => ruff_linter__rules__flake8_bandit__tests__request-without-timeout_S113.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S508_S508.py.snap => ruff_linter__rules__flake8_bandit__tests__snmp-insecure-version_S508.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S509_S509.py.snap => ruff_linter__rules__flake8_bandit__tests__snmp-weak-cryptography_S509.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S507_S507.py.snap => ruff_linter__rules__flake8_bandit__tests__ssh-no-host-key-verification_S507.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S502_S502.py.snap => ruff_linter__rules__flake8_bandit__tests__ssl-insecure-version_S502.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S503_S503.py.snap => ruff_linter__rules__flake8_bandit__tests__ssl-with-bad-defaults_S503.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S504_S504.py.snap => ruff_linter__rules__flake8_bandit__tests__ssl-with-no-version_S504.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S605_S605.py.snap => ruff_linter__rules__flake8_bandit__tests__start-process-with-a-shell_S605.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S606_S606.py.snap => ruff_linter__rules__flake8_bandit__tests__start-process-with-no-shell_S606.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S607_S607.py.snap => ruff_linter__rules__flake8_bandit__tests__start-process-with-partial-path_S607.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S602_S602.py.snap => ruff_linter__rules__flake8_bandit__tests__subprocess-popen-with-shell-equals-true_S602.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S603_S603.py.snap => ruff_linter__rules__flake8_bandit__tests__subprocess-without-shell-equals-true_S603.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S307_S307.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-eval-usage_S307.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S402_S402.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-ftplib-import_S402.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S401_S401.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-ftplib-import_S402.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S412_S412.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-httpoxy-import_S412.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S402_S402.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-httpoxy-import_S412.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S410_S410.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-lxml-import_S410.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S403_S403.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-lxml-import_S410.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S308_S308.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-mark-safe-usage_S308.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S311_S311.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-non-cryptographic-random-usage_S311.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S403_S403.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-import_S403.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S404_S404.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-import_S403.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S301_S301.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-usage_S301.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S413_S413.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pycrypto-import_S413.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S405_S405.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pycrypto-import_S413.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S415_S415.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pyghmi-import_S415.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S406_S406.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-pyghmi-import_S415.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S404_S404.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-subprocess-import_S404.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S407_S407.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-subprocess-import_S404.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S312_S312.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-telnet-usage_S312.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S401_S401.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-telnetlib-import_S401.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S408_S408.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-telnetlib-import_S401.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S310_S310.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-url-open-usage_S310.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S405_S405.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-etree-import_S405.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S408_S408_type_checking.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-etree-import_S405.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S407_S407.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-expat-import_S407.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S409_S409.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-expat-import_S407.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S408_S408.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S410_S410.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S411_S411.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408_type_checking.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S409_S409.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-pulldom-import_S409.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S412_S412.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-pulldom-import_S409.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S406_S406.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-sax-import_S406.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S413_S413.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xml-sax-import_S406.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S411_S411.py.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xmlrpc-import_S411.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S415_S415.pyi.snap => ruff_linter__rules__flake8_bandit__tests__suspicious-xmlrpc-import_S411.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S202_S202.py.snap => ruff_linter__rules__flake8_bandit__tests__tarfile-unsafe-members_S202.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S112_S112.py.snap => ruff_linter__rules__flake8_bandit__tests__try-except-continue_S112.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S110_S110.py.snap => ruff_linter__rules__flake8_bandit__tests__try-except-pass_S110.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S609_S609.py.snap => ruff_linter__rules__flake8_bandit__tests__unix-command-wildcard-injection_S609.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S506_S506.py.snap => ruff_linter__rules__flake8_bandit__tests__unsafe-yaml-load_S506.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bandit/snapshots/{ruff_linter__rules__flake8_bandit__tests__S505_S505.py.snap => ruff_linter__rules__flake8_bandit__tests__weak-cryptographic-key_S505.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_blind_except/snapshots/{ruff_linter__rules__flake8_blind_except__tests__BLE001_BLE.py.snap => ruff_linter__rules__flake8_blind_except__tests__blind-except_BLE.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/{ruff_linter__rules__flake8_boolean_trap__tests__FBT002_FBT.py.snap => ruff_linter__rules__flake8_boolean_trap__tests__boolean-default-value-positional-argument_FBT.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/{ruff_linter__rules__flake8_boolean_trap__tests__FBT003_FBT.py.snap => ruff_linter__rules__flake8_boolean_trap__tests__boolean-positional-value-in-call_FBT.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/{ruff_linter__rules__flake8_boolean_trap__tests__FBT001_FBT.py.snap => ruff_linter__rules__flake8_boolean_trap__tests__boolean-type-hint-positional-argument_FBT.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B024_B024.py.snap => ruff_linter__rules__flake8_bugbear__tests__abstract-base-class-without-abstract-method_B024.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B011_B011.py.snap => ruff_linter__rules__flake8_bugbear__tests__assert-false_B011.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B017_B017_0.py.snap => ruff_linter__rules__flake8_bugbear__tests__assert-raises-exception_B017_0.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap => ruff_linter__rules__flake8_bugbear__tests__assert-raises-exception_B017_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B003_B003.py.snap => ruff_linter__rules__flake8_bugbear__tests__assignment-to-os-environ_B003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B911_B911.py.snap => ruff_linter__rules__flake8_bugbear__tests__batched-without-explicit-strict_B911.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B019_B019.py.snap => ruff_linter__rules__flake8_bugbear__tests__cached-instance-method_B019.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B903_class_as_data_structure.py.snap => ruff_linter__rules__flake8_bugbear__tests__class-as-data-structure_class_as_data_structure.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B903_py39_class_as_data_structure.py.snap => ruff_linter__rules__flake8_bugbear__tests__class-as-data-structure_py39_class_as_data_structure.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B043_B043.py.snap => ruff_linter__rules__flake8_bugbear__tests__del-attr-with-constant_B043.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B014_B014.py.snap => ruff_linter__rules__flake8_bugbear__tests__duplicate-handler-exception_B014.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B025_B025.py.snap => ruff_linter__rules__flake8_bugbear__tests__duplicate-try-block-exception_B025.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B033_B033.py.snap => ruff_linter__rules__flake8_bugbear__tests__duplicate-value_B033.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B027_B027.py.snap => ruff_linter__rules__flake8_bugbear__tests__empty-method-without-abstract-decorator_B027.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_1.pyi.snap => ruff_linter__rules__flake8_bugbear__tests__empty-method-without-abstract-decorator_B027.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B029_B029.py.snap => ruff_linter__rules__flake8_bugbear__tests__except-with-empty-tuple_B029.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B030_B030.py.snap => ruff_linter__rules__flake8_bugbear__tests__except-with-non-exception-classes_B030.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B021_B021.py.snap => ruff_linter__rules__flake8_bugbear__tests__f-string-docstring_B021.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap => ruff_linter__rules__flake8_bugbear__tests__function-call-in-default-argument_B006_B008.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B023_B023.py.snap => ruff_linter__rules__flake8_bugbear__tests__function-uses-loop-variable_B023.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B009_B009_B010.py.snap => ruff_linter__rules__flake8_bugbear__tests__get-attr-with-constant_B009_B010.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B012_B012.py.snap => ruff_linter__rules__flake8_bugbear__tests__jump-statement-in-finally_B012.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B909_B909.py.snap => ruff_linter__rules__flake8_bugbear__tests__loop-iterator-mutation_B909.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B020_B020.py.snap => ruff_linter__rules__flake8_bugbear__tests__loop-variable-overrides-iterator_B020.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B912_B912.py.snap => ruff_linter__rules__flake8_bugbear__tests__map-without-explicit-strict_B912.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B027_B027.pyi.snap => ruff_linter__rules__flake8_bugbear__tests__map-without-explicit-strict_py313_B912.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_1.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B035_py315_B035_py315.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_1.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_2.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_3.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_4.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_4.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_5.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_5.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_6.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_6.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_7.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_7.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_8.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_8.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_9.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_9.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_B008.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B039_B039.py.snap => ruff_linter__rules__flake8_bugbear__tests__mutable-contextvar-default_B039.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B028_B028.py.snap => ruff_linter__rules__flake8_bugbear__tests__no-explicit-stacklevel_B028.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_1.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B912_py313_B912.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_1.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_2.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_3.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_4.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_4.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_5.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_5.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_6.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_6.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_7.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_7.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_8.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_8.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_9.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_9.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap => ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_B008.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B016_B016.py.snap => ruff_linter__rules__flake8_bugbear__tests__raise-literal_B016.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B904_B904.py.snap => ruff_linter__rules__flake8_bugbear__tests__raise-without-from-inside-except_B904.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B034_B034.py.snap => ruff_linter__rules__flake8_bugbear__tests__re-sub-positional-args_B034.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B013_B013.py.snap => ruff_linter__rules__flake8_bugbear__tests__redundant-tuple-in-exception-handler_B013.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B901_B901.py.snap => ruff_linter__rules__flake8_bugbear__tests__return-in-generator_B901.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B031_B031.py.snap => ruff_linter__rules__flake8_bugbear__tests__reuse-of-groupby-generator_B031.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B010_B009_B010.py.snap => ruff_linter__rules__flake8_bugbear__tests__set-attr-with-constant_B009_B010.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B026_B026.py.snap => ruff_linter__rules__flake8_bugbear__tests__star-arg-unpacking-after-keyword-arg_B026.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B035_B035.py.snap => ruff_linter__rules__flake8_bugbear__tests__static-key-dict-comprehension_B035.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_1.pyi.snap => ruff_linter__rules__flake8_bugbear__tests__static-key-dict-comprehension_py315_B035_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B005_B005.py.snap => ruff_linter__rules__flake8_bugbear__tests__strip-with-multi-characters_B005.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B002_B002.py.snap => ruff_linter__rules__flake8_bugbear__tests__unary-prefix-increment-decrement_B002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B032_B032.py.snap => ruff_linter__rules__flake8_bugbear__tests__unintentional-type-annotation_B032.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B004_B004.py.snap => ruff_linter__rules__flake8_bugbear__tests__unreliable-callable-check_B004.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B007_B007.py.snap => ruff_linter__rules__flake8_bugbear__tests__unused-loop-control-variable_B007.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B015_B015.ipynb.snap => ruff_linter__rules__flake8_bugbear__tests__useless-comparison_B015.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B015_B015.py.snap => ruff_linter__rules__flake8_bugbear__tests__useless-comparison_B015.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B022_B022.py.snap => ruff_linter__rules__flake8_bugbear__tests__useless-contextlib-suppress_B022.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B018_B018.ipynb.snap => ruff_linter__rules__flake8_bugbear__tests__useless-expression_B018.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/flake8_bugbear/snapshots/{ruff_linter__rules__flake8_bugbear__tests__B018_B018.py.snap => ruff_linter__rules__flake8_bugbear__tests__useless-expression_B018.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A002_A002.py.snap => ruff_linter__rules__flake8_builtins__tests__builtin-argument-shadowing_A002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A002_A002.py_builtins_ignorelist.snap => ruff_linter__rules__flake8_builtins__tests__builtin-argument-shadowing_A002.py_builtins_ignorelist.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A003_A003.py.snap => ruff_linter__rules__flake8_builtins__tests__builtin-attribute-shadowing_A003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A003_A003.py_builtins_ignorelist.snap => ruff_linter__rules__flake8_builtins__tests__builtin-attribute-shadowing_A003.py_builtins_ignorelist.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A004_A004.py.snap => ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A004_A004.py_builtins_ignorelist.snap => ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py_builtins_ignorelist.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A004_A004.py_py38.snap => ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py_py38.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A006_A006.py.snap => ruff_linter__rules__flake8_builtins__tests__builtin-lambda-argument-shadowing_A006.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A006_A006.py_builtins_ignorelist.snap => ruff_linter__rules__flake8_builtins__tests__builtin-lambda-argument-shadowing_A006.py_builtins_ignorelist.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A001_A001.py.snap => ruff_linter__rules__flake8_builtins__tests__builtin-variable-shadowing_A001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A001_A001.py_builtins_ignorelist.snap => ruff_linter__rules__flake8_builtins__tests__builtin-variable-shadowing_A001.py_builtins_ignorelist.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules___abc____init__.py.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules___abc____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules___abc____init__.py_builtins_allowed_modules.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules___abc____init__.py_builtins_allowed_modules.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__logging____init__.py.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__logging____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__logging____init__.py_builtins_allowed_modules.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__logging____init__.py_builtins_allowed_modules.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__non_builtin____init__.py.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__non_builtin____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__non_builtin____init__.py_builtins_allowed_modules.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__non_builtin____init__.py_builtins_allowed_modules.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__bisect.py.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__bisect.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__bisect.py_builtins_allowed_modules.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__bisect.py_builtins_allowed_modules.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__collections.pyi.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__collections.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__xml.py.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__xml.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__xml.py_builtins_allowed_modules.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__xml.py_builtins_allowed_modules.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__string____init__.py.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__string____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__string____init__.py_builtins_allowed_modules.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__string____init__.py_builtins_allowed_modules.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_false.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_false.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_root.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_root.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_src.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_src.snap} (100%) rename crates/ruff_linter/src/rules/flake8_builtins/snapshots/{ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_true.snap => ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_true.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__preview__C419_C419_1.py.snap => ruff_linter__rules__flake8_comprehensions__tests__preview__unnecessary-comprehension-in-call_C419_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C413_C413.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-call-around-sorted_C413.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C408_C408.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-collection-call_C408.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C408_C408.py_allow_dict_calls_with_keyword_arguments.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-collection-call_C408.py_allow_dict_calls_with_keyword_arguments.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C419_C419.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C409_C409_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C419_C419_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C416_C416.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension_C416.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C420_C420.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C420_C420_1.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C420_C420_2.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C419_C419_2.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C414_C414.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-double-cast-or-process_C414.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C402_C402.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-dict_C402.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C400_C400.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-list_C400.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C400_C400_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-list_C400_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C401_C401.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-set_C401.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C401_C401_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-set_C401_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C411_C411.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-call_C411.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C411_C411_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-call_C411_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C404_C404.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-dict_C404.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C403_C403.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-set_C403.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C403_C403_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-set_C403_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C406_C406.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-dict_C406.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C405_C405.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-set_C405.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C418_C418.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-dict-call_C418.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C418_C418_py315.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-dict-call_C418_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C410_C410.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-list-call_C410.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C409_C409.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-tuple-call_C409.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C420_C420_3.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-tuple-call_C409_py315.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C417_C417.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-map_C417.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C417_C417_1.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-map_C417_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/{ruff_linter__rules__flake8_comprehensions__tests__C415_C415.py.snap => ruff_linter__rules__flake8_comprehensions__tests__unnecessary-subscript-reversal_C415.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ012_DTZ012.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-date-fromtimestamp_DTZ012.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ011_DTZ011.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-date-today_DTZ011.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ006_DTZ006.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-fromtimestamp_DTZ006.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ005_DTZ005.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-now-without-tzinfo_DTZ005.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ007_DTZ007.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-strptime-without-zone_DTZ007.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ002_DTZ002.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-today_DTZ002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ004_DTZ004.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-utcfromtimestamp_DTZ004.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ003_DTZ003.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-utcnow_DTZ003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ001_DTZ001.py.snap => ruff_linter__rules__flake8_datetimez__tests__call-datetime-without-tzinfo_DTZ001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_datetimez/snapshots/{ruff_linter__rules__flake8_datetimez__tests__DTZ901_DTZ901.py.snap => ruff_linter__rules__flake8_datetimez__tests__datetime-min-max_DTZ901.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_debugger/snapshots/{ruff_linter__rules__flake8_debugger__tests__T100_T100.py.snap => ruff_linter__rules__flake8_debugger__tests__debugger_T100.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ007_DJ007.py.snap => ruff_linter__rules__flake8_django__tests__django-all-with-model-form_DJ007.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ006_DJ006.py.snap => ruff_linter__rules__flake8_django__tests__django-exclude-with-model-form_DJ006.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ003_DJ003.py.snap => ruff_linter__rules__flake8_django__tests__django-locals-in-render-function_DJ003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ008_DJ008.py.snap => ruff_linter__rules__flake8_django__tests__django-model-without-dunder-str_DJ008.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ013_DJ013.py.snap => ruff_linter__rules__flake8_django__tests__django-non-leading-receiver-decorator_DJ013.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ001_DJ001.py.snap => ruff_linter__rules__flake8_django__tests__django-nullable-model-string-field_DJ001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_django/snapshots/{ruff_linter__rules__flake8_django__tests__DJ012_DJ012.py.snap => ruff_linter__rules__flake8_django__tests__django-unordered-body-content-in-model_DJ012.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC003_ISC.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__explicit-string-concatenation_ISC.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC004_ISC004.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__implicit-string-concatenation-in-collection-literal_ISC004.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC_syntax_error.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC_syntax_error_2.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC_syntax_error_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC003_ISC.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_explicit-string-concatenation_ISC.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC002_ISC.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_multi-line-implicit-string-concatenation_ISC.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_single-line-implicit-string-concatenation_ISC.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC001_ISC.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/{ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error_2.py.snap => ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC_syntax_error_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG001_LOG001.py.snap => ruff_linter__rules__flake8_logging__tests__direct-logger-instantiation_LOG001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG014_LOG014_0.py.snap => ruff_linter__rules__flake8_logging__tests__exc-info-outside-except-handler_LOG014_0.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG014_LOG014_1.py.snap => ruff_linter__rules__flake8_logging__tests__exc-info-outside-except-handler_LOG014_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG007_LOG007.py.snap => ruff_linter__rules__flake8_logging__tests__exception-without-exc-info_LOG007.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG002_LOG002.py.snap => ruff_linter__rules__flake8_logging__tests__invalid-get-logger-argument_LOG002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG004_LOG004_0.py.snap => ruff_linter__rules__flake8_logging__tests__log-exception-outside-except-handler_LOG004_0.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG004_LOG004_1.py.snap => ruff_linter__rules__flake8_logging__tests__log-exception-outside-except-handler_LOG004_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG015_LOG015.py.snap => ruff_linter__rules__flake8_logging__tests__root-logger-call_LOG015.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging/snapshots/{ruff_linter__rules__flake8_logging__tests__LOG009_LOG009.py.snap => ruff_linter__rules__flake8_logging__tests__undocumented-warn_LOG009.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging_format/snapshots/{ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004.py.snap => ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging_format/snapshots/{ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004_arg_order.py.snap => ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004_arg_order.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_logging_format/snapshots/{ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004_implicit_concat.py.snap => ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004_implicit_concat.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE794_PIE794.py.snap => ruff_linter__rules__flake8_pie__tests__duplicate-class-field-definition_PIE794.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE810_PIE810.py.snap => ruff_linter__rules__flake8_pie__tests__multiple-starts-ends-with_PIE810.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE796_PIE796.py.snap => ruff_linter__rules__flake8_pie__tests__non-unique-enums_PIE796.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE796_PIE796.pyi.snap => ruff_linter__rules__flake8_pie__tests__non-unique-enums_PIE796.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE807_PIE807.py.snap => ruff_linter__rules__flake8_pie__tests__reimplemented-container-builtin_PIE807.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE804_PIE804.py.snap => ruff_linter__rules__flake8_pie__tests__unnecessary-dict-kwargs_PIE804.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE790_PIE790.py.snap => ruff_linter__rules__flake8_pie__tests__unnecessary-placeholder_PIE790.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE808_PIE808.py.snap => ruff_linter__rules__flake8_pie__tests__unnecessary-range-start_PIE808.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pie/snapshots/{ruff_linter__rules__flake8_pie__tests__PIE800_PIE800.py.snap => ruff_linter__rules__flake8_pie__tests__unnecessary-spread_PIE800.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_print/snapshots/{ruff_linter__rules__flake8_print__tests__T203_T203.py.snap => ruff_linter__rules__flake8_print__tests__p-print_T203.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_print/snapshots/{ruff_linter__rules__flake8_print__tests__T201_T201.py.snap => ruff_linter__rules__flake8_print__tests__print_T201.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI032_PYI032.py.snap => ruff_linter__rules__flake8_pyi__tests__any-eq-ne-annotation_PYI032.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI032_PYI032.pyi.snap => ruff_linter__rules__flake8_pyi__tests__any-eq-ne-annotation_PYI032.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI001_PYI001.py.snap => ruff_linter__rules__flake8_pyi__tests__argument-default-in-stub_PYI014.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI014_PYI014.pyi.snap => ruff_linter__rules__flake8_pyi__tests__argument-default-in-stub_PYI014.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI002_PYI002.py.snap => ruff_linter__rules__flake8_pyi__tests__assignment-default-in-stub_PYI015.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI015_PYI015.pyi.snap => ruff_linter__rules__flake8_pyi__tests__assignment-default-in-stub_PYI015.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI036_PYI036.py.snap => ruff_linter__rules__flake8_pyi__tests__bad-exit-annotation_PYI036.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI036_PYI036.pyi.snap => ruff_linter__rules__flake8_pyi__tests__bad-exit-annotation_PYI036.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI006_PYI006.py.snap => ruff_linter__rules__flake8_pyi__tests__bad-version-info-comparison_PYI006.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI006_PYI006.pyi.snap => ruff_linter__rules__flake8_pyi__tests__bad-version-info-comparison_PYI006.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI003_PYI003.py.snap => ruff_linter__rules__flake8_pyi__tests__bad-version-info-order_PYI066.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI066_PYI066.pyi.snap => ruff_linter__rules__flake8_pyi__tests__bad-version-info-order_PYI066.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI057_PYI057.py.snap => ruff_linter__rules__flake8_pyi__tests__byte-string-usage_PYI057.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI057_PYI057.pyi.snap => ruff_linter__rules__flake8_pyi__tests__byte-string-usage_PYI057.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI024_PYI024.py.snap => ruff_linter__rules__flake8_pyi__tests__collections-named-tuple_PYI024.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI024_PYI024.pyi.snap => ruff_linter__rules__flake8_pyi__tests__collections-named-tuple_PYI024.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI004_PYI004.py.snap => ruff_linter__rules__flake8_pyi__tests__complex-assignment-in-stub_PYI017.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI017_PYI017.pyi.snap => ruff_linter__rules__flake8_pyi__tests__complex-assignment-in-stub_PYI017.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI005_PYI005.py.snap => ruff_linter__rules__flake8_pyi__tests__complex-if-statement-in-stub_PYI002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI002_PYI002.pyi.snap => ruff_linter__rules__flake8_pyi__tests__complex-if-statement-in-stub_PYI002.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_0.py.snap => ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_0.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_0.pyi.snap => ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_0.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_1.pyi.snap => ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_1.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI007_PYI007.py.snap => ruff_linter__rules__flake8_pyi__tests__docstring-in-stub_PYI021.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI021_PYI021.pyi.snap => ruff_linter__rules__flake8_pyi__tests__docstring-in-stub_PYI021.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI062_PYI062.py.snap => ruff_linter__rules__flake8_pyi__tests__duplicate-literal-member_PYI062.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI062_PYI062.pyi.snap => ruff_linter__rules__flake8_pyi__tests__duplicate-literal-member_PYI062.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI016_PYI016.py.snap => ruff_linter__rules__flake8_pyi__tests__duplicate-union-member_PYI016.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI016_PYI016.pyi.snap => ruff_linter__rules__flake8_pyi__tests__duplicate-union-member_PYI016.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI013_PYI013.py.snap => ruff_linter__rules__flake8_pyi__tests__ellipsis-in-non-empty-class-body_PYI013.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI013_PYI013.pyi.snap => ruff_linter__rules__flake8_pyi__tests__ellipsis-in-non-empty-class-body_PYI013.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI008_PYI008.py.snap => ruff_linter__rules__flake8_pyi__tests__future-annotations-in-stub_PYI044.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap => ruff_linter__rules__flake8_pyi__tests__future-annotations-in-stub_PYI044.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI058_PYI058.py.snap => ruff_linter__rules__flake8_pyi__tests__generator-return-from-iter-method_PYI058.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI058_PYI058.pyi.snap => ruff_linter__rules__flake8_pyi__tests__generator-return-from-iter-method_PYI058.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI059_PYI059.py.snap => ruff_linter__rules__flake8_pyi__tests__generic-not-last-base-class_PYI059.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI059_PYI059.pyi.snap => ruff_linter__rules__flake8_pyi__tests__generic-not-last-base-class_PYI059.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI045_PYI045.py.snap => ruff_linter__rules__flake8_pyi__tests__iter-method-return-iterable_PYI045.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI045_PYI045.pyi.snap => ruff_linter__rules__flake8_pyi__tests__iter-method-return-iterable_PYI045.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI009_PYI009.py.snap => ruff_linter__rules__flake8_pyi__tests__legacy-type-comment_PYI033.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI033_PYI033.pyi.snap => ruff_linter__rules__flake8_pyi__tests__legacy-type-comment_PYI033.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI050_PYI050.py.snap => ruff_linter__rules__flake8_pyi__tests__no-return-argument-annotation-in-stub_PYI050.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI050_PYI050.pyi.snap => ruff_linter__rules__flake8_pyi__tests__no-return-argument-annotation-in-stub_PYI050.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI010_PYI010.py.snap => ruff_linter__rules__flake8_pyi__tests__non-empty-stub-body_PYI010.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI010_PYI010.pyi.snap => ruff_linter__rules__flake8_pyi__tests__non-empty-stub-body_PYI010.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI034_PYI034.py.snap => ruff_linter__rules__flake8_pyi__tests__non-self-return-type_PYI034.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI034_PYI034.pyi.snap => ruff_linter__rules__flake8_pyi__tests__non-self-return-type_PYI034.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI011_PYI011.py.snap => ruff_linter__rules__flake8_pyi__tests__numeric-literal-too-long_PYI054.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI054_PYI054.pyi.snap => ruff_linter__rules__flake8_pyi__tests__numeric-literal-too-long_PYI054.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI012_PYI012.py.snap => ruff_linter__rules__flake8_pyi__tests__pass-in-class-body_PYI012.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI012_PYI012.pyi.snap => ruff_linter__rules__flake8_pyi__tests__pass-in-class-body_PYI012.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI014_PYI014.py.snap => ruff_linter__rules__flake8_pyi__tests__pass-statement-stub-body_PYI009.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI009_PYI009.pyi.snap => ruff_linter__rules__flake8_pyi__tests__pass-statement-stub-body_PYI009.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI015_PYI015.py.snap => ruff_linter__rules__flake8_pyi__tests__patch-version-comparison_PYI004.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI004_PYI004.pyi.snap => ruff_linter__rules__flake8_pyi__tests__patch-version-comparison_PYI004.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI063_PYI063.py.snap => ruff_linter__rules__flake8_pyi__tests__pep484-style-positional-only-parameter_PYI063.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI063_PYI063.pyi.snap => ruff_linter__rules__flake8_pyi__tests__pep484-style-positional-only-parameter_PYI063.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__preview_PYI033_PYI033.py.snap => ruff_linter__rules__flake8_pyi__tests__preview_legacy-type-comment_PYI033.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_1.py.snap => ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_1.pyi.snap => ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_1.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_2.py.snap => ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_3.py.snap => ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_4.py.snap => ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_4.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__py38_PYI061_PYI061.py.snap => ruff_linter__rules__flake8_pyi__tests__py38_redundant-none-literal_PYI061.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI061_PYI061.pyi.snap => ruff_linter__rules__flake8_pyi__tests__py38_redundant-none-literal_PYI061.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI017_PYI017.py.snap => ruff_linter__rules__flake8_pyi__tests__py38_type-alias-without-annotation_PYI026.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__py38_PYI026_PYI026.pyi.snap => ruff_linter__rules__flake8_pyi__tests__py38_type-alias-without-annotation_PYI026.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI020_PYI020.py.snap => ruff_linter__rules__flake8_pyi__tests__quoted-annotation-in-stub_PYI020.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI020_PYI020.pyi.snap => ruff_linter__rules__flake8_pyi__tests__quoted-annotation-in-stub_PYI020.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI064_PYI064.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-final-literal_PYI064.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI064_PYI064.pyi.snap => ruff_linter__rules__flake8_pyi__tests__redundant-final-literal_PYI064.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI051_PYI051.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-literal-union_PYI051.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI051_PYI051.pyi.snap => ruff_linter__rules__flake8_pyi__tests__redundant-literal-union_PYI051.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI061_PYI061.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-none-literal_PYI061.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__py38_PYI061_PYI061.pyi.snap => ruff_linter__rules__flake8_pyi__tests__redundant-none-literal_PYI061.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_1.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_1.pyi.snap => ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_1.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_2.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI021_PYI021.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI026_PYI026.py.snap => ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_4.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI042_PYI042.py.snap => ruff_linter__rules__flake8_pyi__tests__snake-case-type-alias_PYI042.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI042_PYI042.pyi.snap => ruff_linter__rules__flake8_pyi__tests__snake-case-type-alias_PYI042.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI029_PYI029.py.snap => ruff_linter__rules__flake8_pyi__tests__str-or-repr-defined-in-stub_PYI029.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI029_PYI029.pyi.snap => ruff_linter__rules__flake8_pyi__tests__str-or-repr-defined-in-stub_PYI029.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI033_PYI033.py.snap => ruff_linter__rules__flake8_pyi__tests__string-or-bytes-too-long_PYI053.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI053_PYI053.pyi.snap => ruff_linter__rules__flake8_pyi__tests__string-or-bytes-too-long_PYI053.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI035_PYI035.py.snap => ruff_linter__rules__flake8_pyi__tests__stub-body-multiple-statements_PYI048.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI048_PYI048.pyi.snap => ruff_linter__rules__flake8_pyi__tests__stub-body-multiple-statements_PYI048.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI043_PYI043.py.snap => ruff_linter__rules__flake8_pyi__tests__t-suffixed-type-alias_PYI043.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI043_PYI043.pyi.snap => ruff_linter__rules__flake8_pyi__tests__t-suffixed-type-alias_PYI043.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_3.py.snap => ruff_linter__rules__flake8_pyi__tests__type-alias-without-annotation_PYI026.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI026_PYI026.pyi.snap => ruff_linter__rules__flake8_pyi__tests__type-alias-without-annotation_PYI026.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_4.py.snap => ruff_linter__rules__flake8_pyi__tests__typed-argument-default-in-stub_PYI011.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI011_PYI011.pyi.snap => ruff_linter__rules__flake8_pyi__tests__typed-argument-default-in-stub_PYI011.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_1.py.snap => ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_1.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_1.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_2.py.snap => ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_2.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_2.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_3.py.snap => ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_3.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_3.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.py.snap => ruff_linter__rules__flake8_pyi__tests__unannotated-assignment-in-stub_PYI052.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI052_PYI052.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unannotated-assignment-in-stub_PYI052.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI048_PYI048.py.snap => ruff_linter__rules__flake8_pyi__tests__unassigned-special-variable-in-stub_PYI035.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI035_PYI035.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unassigned-special-variable-in-stub_PYI035.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI030_PYI030.py.snap => ruff_linter__rules__flake8_pyi__tests__unnecessary-literal-union_PYI030.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI030_PYI030.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unnecessary-literal-union_PYI030.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI055_PYI055.py.snap => ruff_linter__rules__flake8_pyi__tests__unnecessary-type-union_PYI055.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI055_PYI055.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unnecessary-type-union_PYI055.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI052_PYI052.py.snap => ruff_linter__rules__flake8_pyi__tests__unprefixed-type-param_PYI001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI001_PYI001.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unprefixed-type-param_PYI001.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI053_PYI053.py.snap => ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-check_PYI007.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI007_PYI007.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-check_PYI007.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI054_PYI054.py.snap => ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-name_PYI008.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI008_PYI008.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-name_PYI008.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI066_PYI066.py.snap => ruff_linter__rules__flake8_pyi__tests__unrecognized-version-info-check_PYI003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI003_PYI003.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unrecognized-version-info-check_PYI003.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI056_PYI056.py.snap => ruff_linter__rules__flake8_pyi__tests__unsupported-method-call-on-all_PYI056.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI056_PYI056.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unsupported-method-call-on-all_PYI056.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI046_PYI046.py.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-protocol_PYI046.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI046_PYI046.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-protocol_PYI046.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI047_PYI047.py.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-type-alias_PYI047.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI047_PYI047.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-type-alias_PYI047.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI018_PYI018.py.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-type-var_PYI018.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI018_PYI018.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-type-var_PYI018.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI049_PYI049.py.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-typed-dict_PYI049.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI049_PYI049.pyi.snap => ruff_linter__rules__flake8_pyi__tests__unused-private-typed-dict_PYI049.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__py38_PYI026_PYI026.py.snap => ruff_linter__rules__flake8_pyi__tests__wrong-tuple-length-version-comparison_PYI005.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pyi/snapshots/{ruff_linter__rules__flake8_pyi__tests__PYI005_PYI005.pyi.snap => ruff_linter__rules__flake8_pyi__tests__wrong-tuple-length-version-comparison_PYI005.pyi.snap} (100%) rename crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/{ruff_linter__rules__flake8_pytest_style__tests__preview__PT018_PT018.py.snap => ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-composite-assertion_PT018.py.snap} (99%) rename crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/{ruff_linter__rules__flake8_pytest_style__tests__preview__PT003_PT003.py.snap => ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-extraneous-scope-function_PT003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET502_RET502.py.snap => ruff_linter__rules__flake8_return__tests__implicit-return-value_RET502.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET503_RET503.py.snap => ruff_linter__rules__flake8_return__tests__implicit-return_RET503.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET508_RET508.py.snap => ruff_linter__rules__flake8_return__tests__superfluous-else-break_RET508.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET507_RET507.py.snap => ruff_linter__rules__flake8_return__tests__superfluous-else-continue_RET507.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET506_RET506.py.snap => ruff_linter__rules__flake8_return__tests__superfluous-else-raise_RET506.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET505_RET505.py.snap => ruff_linter__rules__flake8_return__tests__superfluous-else-return_RET505.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET504_RET504.py.snap => ruff_linter__rules__flake8_return__tests__unnecessary-assign_RET504.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_return/snapshots/{ruff_linter__rules__flake8_return__tests__RET501_RET501.py.snap => ruff_linter__rules__flake8_return__tests__unnecessary-return-none_RET501.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM102_SIM102.py.snap => ruff_linter__rules__flake8_simplify__tests__collapsible-if_SIM102.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM109_SIM109.py.snap => ruff_linter__rules__flake8_simplify__tests__compare-with-tuple_SIM109.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM910_SIM910.py.snap => ruff_linter__rules__flake8_simplify__tests__dict-get-with-none-default_SIM910.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__diff_SIM105_SIM105_5.py.snap => ruff_linter__rules__flake8_simplify__tests__diff_suppressible-exception_SIM105_5.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM208_SIM208.py.snap => ruff_linter__rules__flake8_simplify__tests__double-negation_SIM208.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM101_SIM101.py.snap => ruff_linter__rules__flake8_simplify__tests__duplicate-isinstance-call_SIM101.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM113_SIM113.py.snap => ruff_linter__rules__flake8_simplify__tests__enumerate-for-loop_SIM113.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM223_SIM223.py.snap => ruff_linter__rules__flake8_simplify__tests__expr-and-false_SIM223.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM220_SIM220.py.snap => ruff_linter__rules__flake8_simplify__tests__expr-and-not-expr_SIM220.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM221_SIM221.py.snap => ruff_linter__rules__flake8_simplify__tests__expr-or-not-expr_SIM221.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM222_SIM222.py.snap => ruff_linter__rules__flake8_simplify__tests__expr-or-true_SIM222.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM401_SIM401.py.snap => ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-dict-get_SIM401.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM116_SIM116.py.snap => ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-dict-lookup_SIM116.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM108_SIM108.py.snap => ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-if-exp_SIM108.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM211_SIM211.py.snap => ruff_linter__rules__flake8_simplify__tests__if-expr-with-false-true_SIM211.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM210_SIM210.py.snap => ruff_linter__rules__flake8_simplify__tests__if-expr-with-true-false_SIM210.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM212_SIM212.py.snap => ruff_linter__rules__flake8_simplify__tests__if-expr-with-twisted-arms_SIM212.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM114_SIM114.py.snap => ruff_linter__rules__flake8_simplify__tests__if-with-same-arms_SIM114.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM118_SIM118.py.snap => ruff_linter__rules__flake8_simplify__tests__in-dict-keys_SIM118.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM117_SIM117.py.snap => ruff_linter__rules__flake8_simplify__tests__multiple-with-statements_SIM117.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM103_SIM103.py.snap => ruff_linter__rules__flake8_simplify__tests__needless-bool_SIM103.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM201_SIM201.py.snap => ruff_linter__rules__flake8_simplify__tests__negate-equal-op_SIM201.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM202_SIM202.py.snap => ruff_linter__rules__flake8_simplify__tests__negate-not-equal-op_SIM202.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM115_SIM115.py.snap => ruff_linter__rules__flake8_simplify__tests__open-file-with-context-handler_SIM115.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__preview__SIM113_SIM113.py.snap => ruff_linter__rules__flake8_simplify__tests__preview__enumerate-for-loop_SIM113.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM110_SIM110.py.snap => ruff_linter__rules__flake8_simplify__tests__reimplemented-builtin_SIM110.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM110_SIM111.py.snap => ruff_linter__rules__flake8_simplify__tests__reimplemented-builtin_SIM111.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM107_SIM107.py.snap => ruff_linter__rules__flake8_simplify__tests__return-in-try-except-finally_SIM107.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM905_SIM905.py.snap => ruff_linter__rules__flake8_simplify__tests__split-static-string_SIM905.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_0.py.snap => ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_0.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_1.py.snap => ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_2.py.snap => ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_3.py.snap => ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_3.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_4.py.snap => ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_4.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM112_SIM112.py.snap => ruff_linter__rules__flake8_simplify__tests__uncapitalized-environment-variables_SIM112.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM300_SIM300.py.snap => ruff_linter__rules__flake8_simplify__tests__yoda-conditions_SIM300.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_simplify/snapshots/{ruff_linter__rules__flake8_simplify__tests__SIM911_SIM911.py.snap => ruff_linter__rules__flake8_simplify__tests__zip-dict-keys-and-values_SIM911.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_slots/snapshots/{ruff_linter__rules__flake8_slots__tests__SLOT002_SLOT002.py.snap => ruff_linter__rules__flake8_slots__tests__no-slots-in-namedtuple-subclass_SLOT002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_slots/snapshots/{ruff_linter__rules__flake8_slots__tests__SLOT000_SLOT000.py.snap => ruff_linter__rules__flake8_slots__tests__no-slots-in-str-subclass_SLOT000.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_slots/snapshots/{ruff_linter__rules__flake8_slots__tests__SLOT001_SLOT001.py.snap => ruff_linter__rules__flake8_slots__tests__no-slots-in-tuple-subclass_SLOT001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001-TC002-TC003_TC001-3_future.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import-third-party-import-standard-library-import_TC001-3_future.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001_future.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001_future.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001_future_present.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001_future_present.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC003_TC003.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import__standard-library-import_TC003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC002_TC002.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import__third-party-import_TC002.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_type_checking/snapshots/{ruff_linter__rules__flake8_type_checking__tests__add_future_import_kw_only__TC003_TC003.py.snap => ruff_linter__rules__flake8_type_checking__tests__add_future_import_kw_only__typing-only-standard-library-import_TC003.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/{ruff_linter__rules__flake8_unused_arguments__tests__ARG003_ARG.py.snap => ruff_linter__rules__flake8_unused_arguments__tests__unused-class-method-argument_ARG.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/{ruff_linter__rules__flake8_unused_arguments__tests__ARG001_ARG.py.snap => ruff_linter__rules__flake8_unused_arguments__tests__unused-function-argument_ARG.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/{ruff_linter__rules__flake8_unused_arguments__tests__ARG005_ARG.py.snap => ruff_linter__rules__flake8_unused_arguments__tests__unused-lambda-argument_ARG.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/{ruff_linter__rules__flake8_unused_arguments__tests__ARG002_ARG.py.snap => ruff_linter__rules__flake8_unused_arguments__tests__unused-method-argument_ARG.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/{ruff_linter__rules__flake8_unused_arguments__tests__ARG004_ARG.py.snap => ruff_linter__rules__flake8_unused_arguments__tests__unused-static-method-argument_ARG.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH123_PTH123.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__builtin-open_PTH123.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH207_PTH207.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__glob_PTH207.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH210_PTH210.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__invalid-pathlib-with-suffix_PTH210.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH210_PTH210_1.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__invalid-pathlib-with-suffix_PTH210_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH208_PTH208.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-listdir_PTH208.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH203_PTH203.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-path-getatime_PTH203.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH205_PTH205.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-path-getctime_PTH205.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH204_PTH204.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-path-getmtime_PTH204.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH202_PTH202.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-path-getsize_PTH202.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH202_PTH202_2.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-path-getsize_PTH202_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH206_PTH206.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-sep-split_PTH206.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH211_PTH211.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__os-symlink_PTH211.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH201_PTH201.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__path-constructor-current-directory_PTH201.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH123_PTH123.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__builtin-open_PTH123.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH203_PTH203.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getatime_PTH203.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH205_PTH205.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getctime_PTH205.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH204_PTH204.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getmtime_PTH204.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH202_PTH202.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getsize_PTH202.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH202_PTH202_2.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getsize_PTH202_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH201_PTH201.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__preview__path-constructor-current-directory_PTH201.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH124_py_path_1.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__py-path_py_path_1.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__PTH124_py_path_2.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__py-path_py_path_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/{ruff_linter__rules__flake8_use_pathlib__tests__py314__PTH210_PTH210_2.py.snap => ruff_linter__rules__flake8_use_pathlib__tests__py314__invalid-pathlib-with-suffix_PTH210_2.py.snap} (100%) rename crates/ruff_linter/src/rules/flynt/snapshots/{ruff_linter__rules__flynt__tests__FLY002_FLY002.py.snap => ruff_linter__rules__flynt__tests__static-join-to-f-string_FLY002.py.snap} (100%) rename crates/ruff_linter/src/rules/pandas_vet/snapshots/{ruff_linter__rules__pandas_vet__tests__PD101_PD101.py.snap => ruff_linter__rules__pandas_vet__tests__pandas-nunique-constant-series-check_PD101.py.snap} (100%) rename crates/ruff_linter/src/rules/pandas_vet/snapshots/{ruff_linter__rules__pandas_vet__tests__PD012_pandas_use_of_dot_read_table.py.snap => ruff_linter__rules__pandas_vet__tests__pandas-use-of-dot-read-table_pandas_use_of_dot_read_table.py.snap} (100%) rename crates/ruff_linter/src/rules/pandas_vet/snapshots/{ruff_linter__rules__pandas_vet__tests__PD002_PD002.py.snap => ruff_linter__rules__pandas_vet__tests__pandas-use-of-inplace-argument_PD002.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N817_N817.py.snap => ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-acronym_N817.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N814_N814.py.snap => ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-constant_N814.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N813_N813.py.snap => ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-lowercase_N813.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N811_N811.py.snap => ruff_linter__rules__pep8_naming__tests__constant-imported-as-non-constant_N811.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N807_N807.py.snap => ruff_linter__rules__pep8_naming__tests__dunder-function-name_N807.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N818_N818.py.snap => ruff_linter__rules__pep8_naming__tests__error-suffix-on-exception-name_N818.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N817_N817.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-acronym_N817.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N814_N814.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-constant_N814.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N813_N813.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-lowercase_N813.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N811_N811.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_constant-imported-as-non-constant_N811.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N807_N807.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_dunder-function-name_N807.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N818_N818.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_error-suffix-on-exception-name_N818.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N803_N803.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-argument-name_N803.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N801_N801.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-class-name_N801.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N804_N804.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-first-argument-name-for-class-method_N804.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N805_N805.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-first-argument-name-for-method_N805.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N802_N802.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-function-name_N802.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N803_N804.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-module-name_N999__badAllowed____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N812_N812.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_lowercase-imported-as-non-lowercase_N812.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N815_N815.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_mixed-case-variable-in-class-scope_N815.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N816_N816.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_mixed-case-variable-in-global-scope_N816.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N806_N806.py.snap => ruff_linter__rules__pep8_naming__tests__ignore_names_non-lowercase-variable-in-function_N806.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N803_N803.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-argument-name_N803.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__MODULE__file.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-argument-name_N804.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N801_N801.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-class-name_N801.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N804_N804.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-first-argument-name-for-class-method_N804.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N805_N805.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-first-argument-name-for-method_N805.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N802_N802.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-function-name_N802.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__MODULE____init__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__MODULE____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__flake9____init__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__MODULE__file.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod with spaces__file.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__flake9____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__invalid_name__0001_initial.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__invalid_name__0001_initial.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__invalid_name__import.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__invalid_name__import.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod with spaces____init__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod with spaces____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__no_module__test.txt.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod with spaces__file.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod-with-dashes____init__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod-with-dashes____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____init__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__no_module__test.txt.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____main__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____setup__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____main__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name__file-with-dashes.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____setup__.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name__file-with-dashes.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name__file-with-dashes.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__ignore_names_N999_N999__badAllowed____init__.py.snap => ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name__file-with-dashes.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N812_N812.py.snap => ruff_linter__rules__pep8_naming__tests__lowercase-imported-as-non-lowercase_N812.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N815_N815.py.snap => ruff_linter__rules__pep8_naming__tests__mixed-case-variable-in-class-scope_N815.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N816_N816.py.snap => ruff_linter__rules__pep8_naming__tests__mixed-case-variable-in-global-scope_N816.py.snap} (100%) rename crates/ruff_linter/src/rules/pep8_naming/snapshots/{ruff_linter__rules__pep8_naming__tests__N806_N806.py.snap => ruff_linter__rules__pep8_naming__tests__non-lowercase-variable-in-function_N806.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__PERF102_PERF102.py.snap => ruff_linter__rules__perflint__tests__incorrect-dict-iterator_PERF102.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__PERF403_PERF403.py.snap => ruff_linter__rules__perflint__tests__manual-dict-comprehension_PERF403.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__PERF401_PERF401.py.snap => ruff_linter__rules__perflint__tests__manual-list-comprehension_PERF401.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__PERF402_PERF402.py.snap => ruff_linter__rules__perflint__tests__manual-list-copy_PERF402.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__preview__PERF102_PERF102.py.snap => ruff_linter__rules__perflint__tests__preview__incorrect-dict-iterator_PERF102.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__preview__PERF403_PERF403.py.snap => ruff_linter__rules__perflint__tests__preview__manual-dict-comprehension_PERF403.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__preview__PERF401_PERF401.py.snap => ruff_linter__rules__perflint__tests__preview__manual-list-comprehension_PERF401.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__PERF203_PERF203.py.snap => ruff_linter__rules__perflint__tests__try-except-in-loop_PERF203.py.snap} (100%) rename crates/ruff_linter/src/rules/perflint/snapshots/{ruff_linter__rules__perflint__tests__PERF101_PERF101.py.snap => ruff_linter__rules__perflint__tests__unnecessary-list-cast_PERF101.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E742_E742.py.snap => ruff_linter__rules__pycodestyle__tests__ambiguous-class-name_E742.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E743_E743.py.snap => ruff_linter__rules__pycodestyle__tests__ambiguous-function-name_E743.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E741_E741.py.snap => ruff_linter__rules__pycodestyle__tests__ambiguous-variable-name_E741.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402_2.py.snap => ruff_linter__rules__pycodestyle__tests__ambiguous-variable-name_E741.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E722_E722.py.snap => ruff_linter__rules__pycodestyle__tests__bare-except_E722.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E304_E30.py.snap => ruff_linter__rules__pycodestyle__tests__blank-line-after-decorator_E30.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E301_E30.py.snap => ruff_linter__rules__pycodestyle__tests__blank-line-between-methods_E30.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E301_E30_syntax_error.py.snap => ruff_linter__rules__pycodestyle__tests__blank-line-between-methods_E30_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W293_W29.py.snap => ruff_linter__rules__pycodestyle__tests__blank-line-with-whitespace_W29.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W293_W293.py.snap => ruff_linter__rules__pycodestyle__tests__blank-line-with-whitespace_W293.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E305_E30.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-after-function-or-class_E30.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E305_E30_syntax_error.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-after-function-or-class_E30_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E306_E30.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-before-nested-definition_E30.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E306_E30_syntax_error.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-before-nested-definition_E30_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E302_E30.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E30.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_docstring.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_docstring.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_expression.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_expression.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_function.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_function.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_statement.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_statement.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E302_E30_syntax_error.py.snap => ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E30_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E304_notebook.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-after-decorator_notebook.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E304_typing_stub.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-after-decorator_typing_stub.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E301_notebook.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-between-methods_notebook.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402_3.py.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-between-methods_typing_stub.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E305_notebook.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-after-function-or-class_notebook.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402_4.py.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-after-function-or-class_typing_stub.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E306_notebook.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-before-nested-definition_notebook.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402_5.py.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-before-nested-definition_typing_stub.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E302_notebook.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-top-level_notebook.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E741_E741.pyi.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-top-level_typing_stub.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E303_notebook.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_too-many-blank-lines_notebook.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E303_typing_stub.snap => ruff_linter__rules__pycodestyle__tests__blank_lines_too-many-blank-lines_typing_stub.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E114_E11.py.snap => ruff_linter__rules__pycodestyle__tests__indentation-with-invalid-multiple-comment_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E111_E11.py.snap => ruff_linter__rules__pycodestyle__tests__indentation-with-invalid-multiple_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W605_W605_0.py.snap => ruff_linter__rules__pycodestyle__tests__invalid-escape-sequence_W605_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W605_W605_1.py.snap => ruff_linter__rules__pycodestyle__tests__invalid-escape-sequence_W605_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E731_E731.py.snap => ruff_linter__rules__pycodestyle__tests__lambda-assignment_E731.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E501_E501.py.snap => ruff_linter__rules__pycodestyle__tests__line-too-long_E501.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E501_E501_3.py.snap => ruff_linter__rules__pycodestyle__tests__line-too-long_E501_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E501_E501_4.py.snap => ruff_linter__rules__pycodestyle__tests__line-too-long_E501_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W292_W292_0.py.snap => ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W292_W292_1.py.snap => ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W292_W292_2.py.snap => ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W292_W292_3.py.snap => ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E275_E27.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace-after-keyword_E27.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E226_E22.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-arithmetic-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E227_E22.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-bitwise-or-shift-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E228_E22.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-modulo-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E225_E22.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E252_E25.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-parameter-equals_E25.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E231_E23.py.snap => ruff_linter__rules__pycodestyle__tests__missing-whitespace_E23.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E101_E101.py.snap => ruff_linter__rules__pycodestyle__tests__mixed-spaces-and-tabs_E101.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E40.py.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E40.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402.ipynb.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402_0.py.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E402_E402_1.py.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E301_typing_stub.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E302_typing_stub.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E305_typing_stub.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__blank_lines_E306_typing_stub.snap => ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E401_E40.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-imports-on-one-line_E40.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E266_E26.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-leading-hashes-for-block-comment_E26.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E241_E24.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-comma_E24.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E271_E27.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-keyword_E27.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E222_E22.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E272_E27.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-spaces-before-keyword_E27.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E221_E22.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-spaces-before-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E701_E70.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-statements-on-one-line-colon_E70.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E702_E70.py.snap => ruff_linter__rules__pycodestyle__tests__multiple-statements-on-one-line-semicolon_E70.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E115_E11.py.snap => ruff_linter__rules__pycodestyle__tests__no-indented-block-comment_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E112_E11.py.snap => ruff_linter__rules__pycodestyle__tests__no-indented-block_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E265_E26.py.snap => ruff_linter__rules__pycodestyle__tests__no-space-after-block-comment_E26.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E262_E26.py.snap => ruff_linter__rules__pycodestyle__tests__no-space-after-inline-comment_E26.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E711_E711.py.snap => ruff_linter__rules__pycodestyle__tests__none-comparison_E711.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E713_E713.py.snap => ruff_linter__rules__pycodestyle__tests__not-in-test_E713.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E714_E714.py.snap => ruff_linter__rules__pycodestyle__tests__not-is-test_E714.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E117_E11.py.snap => ruff_linter__rules__pycodestyle__tests__over-indented_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E501_E501_5.py.snap => ruff_linter__rules__pycodestyle__tests__preview__line-too-long_E501_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E40.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E40.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402.ipynb.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_0.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_1.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_2.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_3.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_4.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_5.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_comments.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_comments.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_docstring.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_docstring.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_future.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_future.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_shebang.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_shebang.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E402_E402_shebang_docstring_and_future.py.snap => ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_shebang_docstring_and_future.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__E502_E502.py.snap => ruff_linter__rules__pycodestyle__tests__preview__redundant-backslash_E502.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__W391_W391.ipynb.snap => ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__W391_W391_0.py.snap => ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__W391_W391_1.py.snap => ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__W391_W391_2.py.snap => ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__W391_W391_3.py.snap => ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__preview__W391_W391_4.py.snap => ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E242_E24.py.snap => ruff_linter__rules__pycodestyle__tests__tab-after-comma_E24.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E273_E27.py.snap => ruff_linter__rules__pycodestyle__tests__tab-after-keyword_E27.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E224_E22.py.snap => ruff_linter__rules__pycodestyle__tests__tab-after-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E274_E27.py.snap => ruff_linter__rules__pycodestyle__tests__tab-before-keyword_E27.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E223_E22.py.snap => ruff_linter__rules__pycodestyle__tests__tab-before-operator_E22.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap => ruff_linter__rules__pycodestyle__tests__tab-indentation_W19.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E261_E26.py.snap => ruff_linter__rules__pycodestyle__tests__too-few-spaces-before-inline-comment_E26.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E303_E30.py.snap => ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E30.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_comment.py.snap => ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_comment.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_docstring.py.snap => ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_docstring.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_expression.py.snap => ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_expression.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_statement.py.snap => ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_statement.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E303_E30_syntax_error.py.snap => ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E30_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W291_W29.py.snap => ruff_linter__rules__pycodestyle__tests__trailing-whitespace_W29.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__W291_W291.py.snap => ruff_linter__rules__pycodestyle__tests__trailing-whitespace_W291.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E712_E712.py.snap => ruff_linter__rules__pycodestyle__tests__true-false-comparison_E712.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E721_E721.py.snap => ruff_linter__rules__pycodestyle__tests__type-comparison_E721.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E116_E11.py.snap => ruff_linter__rules__pycodestyle__tests__unexpected-indentation-comment_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E113_E11.py.snap => ruff_linter__rules__pycodestyle__tests__unexpected-indentation_E11.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E251_E25.py.snap => ruff_linter__rules__pycodestyle__tests__unexpected-spaces-around-keyword-parameter-equals_E25.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E703_E70.py.snap => ruff_linter__rules__pycodestyle__tests__useless-semicolon_E70.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E703_E703.ipynb.snap => ruff_linter__rules__pycodestyle__tests__useless-semicolon_E703.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E204_E204.py.snap => ruff_linter__rules__pycodestyle__tests__whitespace-after-decorator_E204.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E201_E20.py.snap => ruff_linter__rules__pycodestyle__tests__whitespace-after-open-bracket_E20.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E202_E20.py.snap => ruff_linter__rules__pycodestyle__tests__whitespace-before-close-bracket_E20.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E211_E21.py.snap => ruff_linter__rules__pycodestyle__tests__whitespace-before-parameters_E21.py.snap} (100%) rename crates/ruff_linter/src/rules/pycodestyle/snapshots/{ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap => ruff_linter__rules__pycodestyle__tests__whitespace-before-punctuation_E20.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D202_D.py.snap => ruff_linter__rules__pydocstyle__tests__blank-line-after-function_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D202_D202.py.snap => ruff_linter__rules__pydocstyle__tests__blank-line-after-function_D202.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D211_D.py.snap => ruff_linter__rules__pydocstyle__tests__blank-line-before-class_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D201_D.py.snap => ruff_linter__rules__pydocstyle__tests__blank-line-before-function_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D412_sections.py.snap => ruff_linter__rules__pydocstyle__tests__blank-lines-between-header-and-content_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D412_sphinx.py.snap => ruff_linter__rules__pydocstyle__tests__blank-lines-between-header-and-content_sphinx.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D404_D.py.snap => ruff_linter__rules__pydocstyle__tests__docstring-starts-with-this_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D100_D100.ipynb.snap => ruff_linter__rules__pydocstyle__tests__docstring-tab-indentation_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D414_sections.py.snap => ruff_linter__rules__pydocstyle__tests__empty-docstring-section_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D419_D.py.snap => ruff_linter__rules__pydocstyle__tests__empty-docstring_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D301_D.py.snap => ruff_linter__rules__pydocstyle__tests__escape-sequence-in-docstring_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D301_D301.py.snap => ruff_linter__rules__pydocstyle__tests__escape-sequence-in-docstring_D301.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D100__unrelated___no_pkg_priv.py.snap => ruff_linter__rules__pydocstyle__tests__first-word-uncapitalized_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D403_D403.py.snap => ruff_linter__rules__pydocstyle__tests__first-word-uncapitalized_D403.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D204_D.py.snap => ruff_linter__rules__pydocstyle__tests__incorrect-blank-line-after-class_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D203_D.py.snap => ruff_linter__rules__pydocstyle__tests__incorrect-blank-line-before-class_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D409_sections.py.snap => ruff_linter__rules__pydocstyle__tests__mismatched-section-underline-length_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D413_D413.py.snap => ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_D413.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D413_sections.py.snap => ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D413_sphinx_directive.py.snap => ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_sphinx_directive.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D205_D.py.snap => ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-summary_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D407_sections.py.snap => ruff_linter__rules__pydocstyle__tests__missing-dashed-underline-after-section_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D406_sections.py.snap => ruff_linter__rules__pydocstyle__tests__missing-new-line-after-section-name_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D100__unrelated__pkg___priv__no_D100_priv.py.snap => ruff_linter__rules__pydocstyle__tests__missing-section-name-colon_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D408_sections.py.snap => ruff_linter__rules__pydocstyle__tests__missing-section-underline-after-name_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D415_D.py.snap => ruff_linter__rules__pydocstyle__tests__missing-terminal-punctuation_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D415_D400_415.py.snap => ruff_linter__rules__pydocstyle__tests__missing-terminal-punctuation_D400_415.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D400_D.py.snap => ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D400_D400.py.snap => ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D400.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D400_D400_415.py.snap => ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D400_415.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D212_D.py.snap => ruff_linter__rules__pydocstyle__tests__multi-line-summary-first-line_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D213_D.py.snap => ruff_linter__rules__pydocstyle__tests__multi-line-summary-second-line_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D209_D.py.snap => ruff_linter__rules__pydocstyle__tests__new-line-after-last-paragraph_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D410_D410.py.snap => ruff_linter__rules__pydocstyle__tests__no-blank-line-after-section_D410.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D410_sections.py.snap => ruff_linter__rules__pydocstyle__tests__no-blank-line-after-section_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D411_sections.py.snap => ruff_linter__rules__pydocstyle__tests__no-blank-line-before-section_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D405_sections.py.snap => ruff_linter__rules__pydocstyle__tests__non-capitalized-section-name_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D104_D.py.snap => ruff_linter__rules__pydocstyle__tests__non-capitalized-section-name_sphinx_directive.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D401_D401.py.snap => ruff_linter__rules__pydocstyle__tests__non-imperative-mood_D401.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D208_D.py.snap => ruff_linter__rules__pydocstyle__tests__over-indentation_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D208_D208.py.snap => ruff_linter__rules__pydocstyle__tests__over-indentation_D208.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D215_D215.py.snap => ruff_linter__rules__pydocstyle__tests__overindented-section-underline_D215.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D215_sections.py.snap => ruff_linter__rules__pydocstyle__tests__overindented-section-underline_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D214_D214_module.py.snap => ruff_linter__rules__pydocstyle__tests__overindented-section_D214_module.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D214_sections.py.snap => ruff_linter__rules__pydocstyle__tests__overindented-section_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D106_D.py.snap => ruff_linter__rules__pydocstyle__tests__overindented-section_sphinx_directive.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D418_D.py.snap => ruff_linter__rules__pydocstyle__tests__overload-with-docstring_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D206_D.py.snap => ruff_linter__rules__pydocstyle__tests__overload-with-docstring_D418.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D421_D421.py.snap => ruff_linter__rules__pydocstyle__tests__property-docstring-starts-with-verb_D421.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D402_D.py.snap => ruff_linter__rules__pydocstyle__tests__signature-in-docstring_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D402_D402.py.snap => ruff_linter__rules__pydocstyle__tests__signature-in-docstring_D402.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D210_D.py.snap => ruff_linter__rules__pydocstyle__tests__surrounding-whitespace_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D300_D.py.snap => ruff_linter__rules__pydocstyle__tests__triple-single-quotes_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D300_D300.py.snap => ruff_linter__rules__pydocstyle__tests__triple-single-quotes_D300.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D207_D.py.snap => ruff_linter__rules__pydocstyle__tests__under-indentation_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D105_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-magic-method_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D214_sphinx_directive.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-param_canonical_google_examples.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D403_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-param_canonical_numpy_examples.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D417_sections.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-param_sections.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D101_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-class_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D103_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-function_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D107_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-init_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D102_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-method_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D102_setter.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-method_setter.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D100_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-module_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D405_sphinx_directive.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-module_D100.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D416_D.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated___no_pkg_priv.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D100__unrelated__pkg__D100_pub.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated__pkg__D100_pub.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D417_canonical_google_examples.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated__pkg___priv__no_D100_priv.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D417_canonical_numpy_examples.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-nested-class_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D418_D418.pyi.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D.py.snap} (98%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D104_D104____init__.py.snap => ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D104____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D200_D.py.snap => ruff_linter__rules__pydocstyle__tests__unnecessary-multiline-docstring_D.py.snap} (100%) rename crates/ruff_linter/src/rules/pydocstyle/snapshots/{ruff_linter__rules__pydocstyle__tests__D200_D200.py.snap => ruff_linter__rules__pydocstyle__tests__unnecessary-multiline-docstring_D200.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F631_F631.py.snap => ruff_linter__rules__pyflakes__tests__assert-tuple_F631.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F701_F701.py.snap => ruff_linter__rules__pyflakes__tests__break-outside-loop_F701.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F702_F702.py.snap => ruff_linter__rules__pyflakes__tests__continue-outside-loop_F702.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F707_F707.py.snap => ruff_linter__rules__pyflakes__tests__default-except-not-last_F707.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F541_F541.py.snap => ruff_linter__rules__pyflakes__tests__f-string-missing-placeholders_F541.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F722_F722.py.snap => ruff_linter__rules__pyflakes__tests__forward-annotation-syntax-error_F722.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F722_F722_1.py.snap => ruff_linter__rules__pyflakes__tests__forward-annotation-syntax-error_F722_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F407_F407.py.snap => ruff_linter__rules__pyflakes__tests__future-feature-not-defined_F407.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F634_F634.py.snap => ruff_linter__rules__pyflakes__tests__if-tuple_F634.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F402_F402.ipynb.snap => ruff_linter__rules__pyflakes__tests__import-shadowed-by-loop-var_F402.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F402_F402.py.snap => ruff_linter__rules__pyflakes__tests__import-shadowed-by-loop-var_F402.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F633_F633.py.snap => ruff_linter__rules__pyflakes__tests__invalid-print-syntax_F633.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F632_F632.py.snap => ruff_linter__rules__pyflakes__tests__is-literal_F632.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F404_F404_0.py.snap => ruff_linter__rules__pyflakes__tests__late-future-import_F404_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F404_F404_1.py.snap => ruff_linter__rules__pyflakes__tests__late-future-import_F404_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F601_F601.py.snap => ruff_linter__rules__pyflakes__tests__multi-value-repeated-key-literal_F601.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F602_F602.py.snap => ruff_linter__rules__pyflakes__tests__multi-value-repeated-key-variable_F602.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F622_F622.py.snap => ruff_linter__rules__pyflakes__tests__multiple-starred-expressions_F622.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F502_F502.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-expected-mapping_F502.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F502_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-expected-mapping_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F503_F503.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-expected-sequence_F503.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F503_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-expected-sequence_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F504_F504.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-extra-named-arguments_F504.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F504_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-extra-named-arguments_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F501_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-invalid-format_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_1.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-missing-argument_F504.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F505_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-missing-argument_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F506_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-mixed-positional-and-named_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F507_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-positional-count-mismatch_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F508_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-star-requires-sequence_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F509_F50x.py.snap => ruff_linter__rules__pyflakes__tests__percent-format-unsupported-format-character_F50x.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F811_F811_36.py.snap => ruff_linter__rules__pyflakes__tests__preview__redefined-while-unused_F811_36.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F822___init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__undefined-export___init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_24____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_24____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_25__all_nonempty____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_25__all_nonempty____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_26__all_empty____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_26__all_empty____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_stable_F401_27__all_mistyped____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_27__all_mistyped____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_28__all_multiple____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_28__all_multiple____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_stable_F401_29__all_conditional____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_29__all_conditional____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_33____init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_33____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401___init__.py.snap => ruff_linter__rules__pyflakes__tests__preview__unused-import___init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F901_F901.py.snap => ruff_linter__rules__pyflakes__tests__raise-not-implemented_F901.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_0.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_1.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_12.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_10.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_13.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_11.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_12.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_12.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_14.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_13.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_16.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_14.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_15.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_15.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_16.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_16.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_17.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_17.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_19.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_18.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_2.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_19.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_2.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_20.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_20.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_21.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_21.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_21.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_22.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_23.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_23.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_22.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_24.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_3.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_25.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_26.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_26.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_32.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_27.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_28.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_28.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_29.pyi.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_29.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_3.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_30.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_30.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_31.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_31.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_32.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_32.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_4.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_33.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_35.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_35.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_8.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_36.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_4.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_5.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_6.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_6.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F505_F504.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_7.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_8.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_8.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_10.py.snap => ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_9.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F706_F706.py.snap => ruff_linter__rules__pyflakes__tests__return-outside-function_F706.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F522_F522.py.snap => ruff_linter__rules__pyflakes__tests__string-dot-format-extra-named-arguments_F522.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F523_F523.py.snap => ruff_linter__rules__pyflakes__tests__string-dot-format-extra-positional-arguments_F523.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F521_F521.py.snap => ruff_linter__rules__pyflakes__tests__string-dot-format-invalid-format_F521.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F524_F524.py.snap => ruff_linter__rules__pyflakes__tests__string-dot-format-missing-arguments_F524.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F525_F525.py.snap => ruff_linter__rules__pyflakes__tests__string-dot-format-mixing-automatic_F525.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F822_F822_0.py.snap => ruff_linter__rules__pyflakes__tests__undefined-export_F822_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F822_F822_0.pyi.snap => ruff_linter__rules__pyflakes__tests__undefined-export_F822_0.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F822_F822_1.py.snap => ruff_linter__rules__pyflakes__tests__undefined-export_F822_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F822_F822_1b.py.snap => ruff_linter__rules__pyflakes__tests__undefined-export_F822_1b.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_11.py.snap => ruff_linter__rules__pyflakes__tests__undefined-export_F822_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F822_F822_3.py.snap => ruff_linter__rules__pyflakes__tests__undefined-export_F822_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F405_F405.py.snap => ruff_linter__rules__pyflakes__tests__undefined-local-with-import-star-usage_F405.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F403_F403.py.snap => ruff_linter__rules__pyflakes__tests__undefined-local-with-import-star_F403.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F406_F406.py.snap => ruff_linter__rules__pyflakes__tests__undefined-local-with-nested-import-star-usage_F406.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F823_F823.py.snap => ruff_linter__rules__pyflakes__tests__undefined-local_F823.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_0.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_1.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_13.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_10.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_11.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_11.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_11.pyi.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_11.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_12.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_12.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_13.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_13.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_14.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_14.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_18.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_15.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_19.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_16.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_17.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_17.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_18.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_18.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_19.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_19.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_20.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_20.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_20.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_21.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_21.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_22.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_22.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_24.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_23.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_25.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_24.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_27.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_25.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_26.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_26.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_33.pyi.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_26.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_27.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_27.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_28.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_28.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_36.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_29.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_3.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_30.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_30.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_31.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_31.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_7.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_32.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_33.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_33.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_34.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_34.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_34.pyi.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_34.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_4.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_5.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_5.pyi.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_5.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F811_F811_9.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_6.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_7.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_7.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_10.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_8.pyi.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_9.py.snap => ruff_linter__rules__pyflakes__tests__undefined-name_F821_9.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F842_F842.py.snap => ruff_linter__rules__pyflakes__tests__unused-annotation_F842.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_0.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_14.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_10.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_10.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_11.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_11.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_15.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_12.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_16.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_13.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_2.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_14.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_15.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_15.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_22.ipynb.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_16.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_17.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_17.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_18.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_18.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_23.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_19.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_24.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_25.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_20.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_26.pyi.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_21.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_29.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_22.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_23.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_23.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_32.pyi.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_6.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_32.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_34.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_34.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F821_F821_8.pyi.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_5.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_6.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_6.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_7.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_7.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F822_F822_2.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_8.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_F401_9.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_F401_9.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_24____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_24____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_25__all_nonempty____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_25__all_nonempty____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_26__all_empty____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_26__all_empty____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_27__all_mistyped____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_27__all_mistyped____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_28__all_multiple____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_28__all_multiple____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_29__all_conditional____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_29__all_conditional____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_30.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_30.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_stable_F401_24____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_24____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_stable_F401_25__all_nonempty____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_25__all_nonempty____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_stable_F401_26__all_empty____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_26__all_empty____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_27__all_mistyped____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_27__all_mistyped____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F401_stable_F401_28__all_multiple____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_28__all_multiple____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__preview__F401_F401_29__all_conditional____init__.py.snap => ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_29__all_conditional____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F841_F841_0.py.snap => ruff_linter__rules__pyflakes__tests__unused-variable_F841_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F841_F841_1.py.snap => ruff_linter__rules__pyflakes__tests__unused-variable_F841_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F841_F841_2.py.snap => ruff_linter__rules__pyflakes__tests__unused-variable_F841_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F841_F841_3.py.snap => ruff_linter__rules__pyflakes__tests__unused-variable_F841_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pyflakes/snapshots/{ruff_linter__rules__pyflakes__tests__F704_F704.py.snap => ruff_linter__rules__pyflakes__tests__yield-outside-function_F704.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_0.py.snap => ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_1.py.snap => ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_2.py.snap => ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_3.py.snap => ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH003_PGH003_0.py.snap => ruff_linter__rules__pygrep_hooks__tests__blanket-type-ignore_PGH003_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH003_PGH003_1.py.snap => ruff_linter__rules__pygrep_hooks__tests__blanket-type-ignore_PGH003_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__PGH005_PGH005_0.py.snap => ruff_linter__rules__pygrep_hooks__tests__invalid-mock-access_PGH005_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pygrep_hooks/snapshots/{ruff_linter__rules__pygrep_hooks__tests__preview__PGH005_PGH005_0.py.snap => ruff_linter__rules__pygrep_hooks__tests__preview__invalid-mock-access_PGH005_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0129_assert_on_string_literal.py.snap => ruff_linter__rules__pylint__tests__assert-on-string-literal_assert_on_string_literal.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1142_await_outside_async.ipynb.snap => ruff_linter__rules__pylint__tests__await-outside-async_await_outside_async.ipynb.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1142_await_outside_async.py.snap => ruff_linter__rules__pylint__tests__await-outside-async_await_outside_async.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW3201_bad_dunder_method_name.py.snap => ruff_linter__rules__pylint__tests__bad-dunder-method-name_bad_dunder_method_name.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1501_bad_open_mode.py.snap => ruff_linter__rules__pylint__tests__bad-open-mode_bad_open_mode.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0211_bad_staticmethod_argument.py.snap => ruff_linter__rules__pylint__tests__bad-staticmethod-argument_bad_staticmethod_argument.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1310_bad_str_strip_call.py.snap => ruff_linter__rules__pylint__tests__bad-str-strip-call_bad_str_strip_call.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1300_bad_string_format_character.py.snap => ruff_linter__rules__pylint__tests__bad-string-format-character_bad_string_format_character.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1307_bad_string_format_type.py.snap => ruff_linter__rules__pylint__tests__bad-string-format-type_bad_string_format_type.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2502_bidirectional_unicode.py.snap => ruff_linter__rules__pylint__tests__bidirectional-unicode_bidirectional_unicode.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0711_binary_op_exception.py.snap => ruff_linter__rules__pylint__tests__binary-op-exception_binary_op_exception.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1716_boolean_chained_comparison.py.snap => ruff_linter__rules__pylint__tests__boolean-chained-comparison_boolean_chained_comparison.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR5501_collapsible_else_if.py.snap => ruff_linter__rules__pylint__tests__collapsible-else-if_collapsible_else_if.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC1901_compare_to_empty_string.py.snap => ruff_linter__rules__pylint__tests__compare-to-empty-string_compare_to_empty_string.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0133_comparison_of_constant.py.snap => ruff_linter__rules__pylint__tests__comparison-of-constant_comparison_of_constant.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0124_comparison_with_itself.py.snap => ruff_linter__rules__pylint__tests__comparison-with-itself_comparison_with_itself.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0414_import_aliasing_2____init__.py.snap => ruff_linter__rules__pylint__tests__continue-in-finally_continue_in_finally.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0206_dict_index_missing_items.py.snap => ruff_linter__rules__pylint__tests__dict-index-missing-items_dict_index_missing_items.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1141_dict_iter_missing_items.py.snap => ruff_linter__rules__pylint__tests__dict-iter-missing-items_dict_iter_missing_items.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0241_duplicate_bases.py.snap => ruff_linter__rules__pylint__tests__duplicate-bases_duplicate_bases.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR2044_empty_comment.py.snap => ruff_linter__rules__pylint__tests__empty-comment_empty_comment.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR2044_empty_comment_line_continuation.py.snap => ruff_linter__rules__pylint__tests__empty-comment_empty_comment_line_continuation.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1641_eq_without_hash.py.snap => ruff_linter__rules__pylint__tests__eq-without-hash_eq_without_hash.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0604_global_at_module_level.py.snap => ruff_linter__rules__pylint__tests__global-at-module-level_global_at_module_level.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0603_global_statement.py.snap => ruff_linter__rules__pylint__tests__global-statement_global_statement.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0602_global_variable_not_assigned.py.snap => ruff_linter__rules__pylint__tests__global-variable-not-assigned_global_variable_not_assigned.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1730_if_stmt_min_max.py.snap => ruff_linter__rules__pylint__tests__if-stmt-min-max_if_stmt_min_max.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0415_import_outside_top_level.py.snap => ruff_linter__rules__pylint__tests__import-outside-top-level_import_outside_top_level.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC2701_import_private_name__submodule____main__.py.snap => ruff_linter__rules__pylint__tests__import-private-name_import_private_name__submodule____main__.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0406_import_self__module.py.snap => ruff_linter__rules__pylint__tests__import-self_import_self__module.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0605_invalid_all_format.py.snap => ruff_linter__rules__pylint__tests__invalid-all-format_invalid_all_format.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0604_invalid_all_object.py.snap => ruff_linter__rules__pylint__tests__invalid-all-object_invalid_all_object.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0304_invalid_return_type_bool.py.snap => ruff_linter__rules__pylint__tests__invalid-bool-return-type_invalid_return_type_bool.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0308_invalid_return_type_bytes.py.snap => ruff_linter__rules__pylint__tests__invalid-bytes-return-type_invalid_return_type_bytes.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2510_invalid_characters.py.snap => ruff_linter__rules__pylint__tests__invalid-character-backspace_invalid_characters.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap => ruff_linter__rules__pylint__tests__invalid-character-backspace_invalid_characters_syntax_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2513_invalid_characters.py.snap => ruff_linter__rules__pylint__tests__invalid-character-esc_invalid_characters.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2514_invalid_characters.py.snap => ruff_linter__rules__pylint__tests__invalid-character-nul_invalid_characters.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2512_invalid_characters.py.snap => ruff_linter__rules__pylint__tests__invalid-character-sub_invalid_characters.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE2515_invalid_characters.py.snap => ruff_linter__rules__pylint__tests__invalid-character-zero-width-space_invalid_characters.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1508_invalid_envvar_default.py.snap => ruff_linter__rules__pylint__tests__invalid-envvar-default_invalid_envvar_default.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1507_invalid_envvar_value.py.snap => ruff_linter__rules__pylint__tests__invalid-envvar-value_invalid_envvar_value.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0309_invalid_return_type_hash.py.snap => ruff_linter__rules__pylint__tests__invalid-hash-return-type_invalid_return_type_hash.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0305_invalid_return_type_index.py.snap => ruff_linter__rules__pylint__tests__invalid-index-return-type_invalid_return_type_index.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0303_invalid_return_type_length.py.snap => ruff_linter__rules__pylint__tests__invalid-length-return-type_invalid_return_type_length.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0307_invalid_return_type_str.py.snap => ruff_linter__rules__pylint__tests__invalid-str-return-type_invalid_return_type_str.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0208_iteration_over_set.py.snap => ruff_linter__rules__pylint__tests__iteration-over-set_iteration_over_set.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC1802_len_as_condition.py.snap => ruff_linter__rules__pylint__tests__len-test_len_as_condition.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR6201_literal_membership.py.snap => ruff_linter__rules__pylint__tests__literal-membership_literal_membership.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0118_load_before_global_declaration.py.snap => ruff_linter__rules__pylint__tests__load-before-global-declaration_load_before_global_declaration.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1206_logging_too_few_args.py.snap => ruff_linter__rules__pylint__tests__logging-too-few-args_logging_too_few_args.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1205_logging_too_many_args.py.snap => ruff_linter__rules__pylint__tests__logging-too-many-args_logging_too_many_args.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR2004_magic_value_comparison.py.snap => ruff_linter__rules__pylint__tests__magic-value-comparison_magic_value_comparison.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0402_import_aliasing.py.snap => ruff_linter__rules__pylint__tests__manual-from-import_import_aliasing.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0704_misplaced_bare_raise.py.snap => ruff_linter__rules__pylint__tests__misplaced-bare-raise_misplaced_bare_raise.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0207_missing_maxsplit_arg.py.snap => ruff_linter__rules__pylint__tests__missing-maxsplit-arg_missing_maxsplit_arg.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE4703_modified_iterating_set.py.snap => ruff_linter__rules__pylint__tests__modified-iterating-set_modified_iterating_set.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0131_named_expr_without_context.py.snap => ruff_linter__rules__pylint__tests__named-expr-without-context_named_expr_without_context.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0177_nan_comparison.py.snap => ruff_linter__rules__pylint__tests__nan-comparison_nan_comparison.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW3301_nested_min_max.py.snap => ruff_linter__rules__pylint__tests__nested-min-max_nested_min_max.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0202_no_method_decorator.py.snap => ruff_linter__rules__pylint__tests__no-classmethod-decorator_no_method_decorator.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR6301_no_self_use.py.snap => ruff_linter__rules__pylint__tests__no-self-use_no_self_use.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0203_no_method_decorator.py.snap => ruff_linter__rules__pylint__tests__no-staticmethod-decorator_no_method_decorator.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC2403_non_ascii_module_import.py.snap => ruff_linter__rules__pylint__tests__non-ascii-import-name_non_ascii_module_import.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC2401_non_ascii_name.py.snap => ruff_linter__rules__pylint__tests__non-ascii-name_non_ascii_name.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR6104_non_augmented_assignment.py.snap => ruff_linter__rules__pylint__tests__non-augmented-assignment_non_augmented_assignment.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0237_non_slot_assignment.py.snap => ruff_linter__rules__pylint__tests__non-slot-assignment_non_slot_assignment.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0115_nonlocal_and_global.py.snap => ruff_linter__rules__pylint__tests__nonlocal-and-global_nonlocal_and_global.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0117_nonlocal_without_binding.py.snap => ruff_linter__rules__pylint__tests__nonlocal-without-binding_nonlocal_without_binding.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0643_potential_index_error.py.snap => ruff_linter__rules__pylint__tests__potential-index-error_potential_index_error.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap => ruff_linter__rules__pylint__tests__preview__useless-exception-statement_useless_exception_statement.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0206_property_with_parameters.py.snap => ruff_linter__rules__pylint__tests__property-with-parameters_property_with_parameters.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap => ruff_linter__rules__pylint__tests__redeclared-assigned-name_redeclared_assigned_name.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1704_redefined_argument_from_local.py.snap => ruff_linter__rules__pylint__tests__redefined-argument-from-local_redefined_argument_from_local.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW2901_redefined_loop_name.py.snap => ruff_linter__rules__pylint__tests__redefined-loop-name_redefined_loop_name.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0244_redefined_slots_in_subclass.py.snap => ruff_linter__rules__pylint__tests__redefined-slots-in-subclass_redefined_slots_in_subclass.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1714_repeated_equality_comparison.py.snap => ruff_linter__rules__pylint__tests__repeated-equality-comparison_repeated_equality_comparison.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1132_repeated_keyword_argument.py.snap => ruff_linter__rules__pylint__tests__repeated-keyword-argument_repeated_keyword_argument.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0101_return_in_init.py.snap => ruff_linter__rules__pylint__tests__return-in-init_return_in_init.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0127_self_assigning_variable.py.snap => ruff_linter__rules__pylint__tests__self-assigning-variable_self_assigning_variable.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap => ruff_linter__rules__pylint__tests__self-or-cls-assignment_self_or_cls_assignment.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1507_shallow_copy_environ.py.snap => ruff_linter__rules__pylint__tests__shallow-copy-environ_shallow_copy_environ.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0205_single_string_slots.py.snap => ruff_linter__rules__pylint__tests__single-string-slots_single_string_slots.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1519_singledispatch_method.py.snap => ruff_linter__rules__pylint__tests__singledispatch-method_singledispatch_method.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1520_singledispatchmethod_function.py.snap => ruff_linter__rules__pylint__tests__singledispatchmethod-function_singledispatchmethod_function.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1708_stop_iteration_return.py.snap => ruff_linter__rules__pylint__tests__stop-iteration-return_stop_iteration_return.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1509_subprocess_popen_preexec_fn.py.snap => ruff_linter__rules__pylint__tests__subprocess-popen-preexec-fn_subprocess_popen_preexec_fn.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1510_subprocess_run_without_check.py.snap => ruff_linter__rules__pylint__tests__subprocess-run-without-check_subprocess_run_without_check.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0245_super_without_brackets.py.snap => ruff_linter__rules__pylint__tests__super-without-brackets_super_without_brackets.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1712_swap_with_temporary_variable.py.snap => ruff_linter__rules__pylint__tests__swap-with-temporary-variable_swap_with_temporary_variable.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_0.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_0.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_1.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_1.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_10.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_10.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_11.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_11.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_12.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_12.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_13.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_13.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_14.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_14.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_15.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_15.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_16.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_16.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_2.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_2.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_3.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_3.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_4.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_4.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_5.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_5.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_6.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_6.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_7.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_7.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_8.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_8.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_9.py.snap => ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_9.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0913_too_many_arguments.py.snap => ruff_linter__rules__pylint__tests__too-many-arguments_too_many_arguments.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0912_too_many_branches.py.snap => ruff_linter__rules__pylint__tests__too-many-branches_too_many_branches.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1702_too_many_nested_blocks.py.snap => ruff_linter__rules__pylint__tests__too-many-nested-blocks_too_many_nested_blocks.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0917_too_many_positional_arguments.py.snap => ruff_linter__rules__pylint__tests__too-many-positional-arguments_too_many_positional_arguments.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0911_too_many_return_statements.py.snap => ruff_linter__rules__pylint__tests__too-many-return-statements_too_many_return_statements.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0717_too_many_try_statements.py.snap => ruff_linter__rules__pylint__tests__too-many-statements-in-try-clause_too_many_try_statements.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR0915_too_many_statements.py.snap => ruff_linter__rules__pylint__tests__too-many-statements_too_many_statements.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0131_type_bivariance.py.snap => ruff_linter__rules__pylint__tests__type-bivariance_type_bivariance.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0105_type_name_incorrect_variance.py.snap => ruff_linter__rules__pylint__tests__type-name-incorrect-variance_type_name_incorrect_variance.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0132_type_param_name_mismatch.py.snap => ruff_linter__rules__pylint__tests__type-param-name-mismatch_type_param_name_mismatch.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0302_unexpected_special_method_signature.py.snap => ruff_linter__rules__pylint__tests__unexpected-special-method-signature_unexpected_special_method_signature.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1733_unnecessary_dict_index_lookup.py.snap => ruff_linter__rules__pylint__tests__unnecessary-dict-index-lookup_unnecessary_dict_index_lookup.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC3002_unnecessary_direct_lambda_call.py.snap => ruff_linter__rules__pylint__tests__unnecessary-direct-lambda-call_unnecessary_direct_lambda_call.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC2801_unnecessary_dunder_call.py.snap => ruff_linter__rules__pylint__tests__unnecessary-dunder-call_unnecessary_dunder_call.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0108_unnecessary_lambda.py.snap => ruff_linter__rules__pylint__tests__unnecessary-lambda_unnecessary_lambda.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1736_unnecessary_list_index_lookup.py.snap => ruff_linter__rules__pylint__tests__unnecessary-list-index-lookup_unnecessary_list_index_lookup.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0101_unreachable.py.snap => ruff_linter__rules__pylint__tests__unreachable-code_unreachable.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW1514_unspecified_encoding.py.snap => ruff_linter__rules__pylint__tests__unspecified-encoding_unspecified_encoding.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0120_useless_else_on_loop.py.snap => ruff_linter__rules__pylint__tests__useless-else-on-loop_useless_else_on_loop.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap => ruff_linter__rules__pylint__tests__useless-exception-statement_useless_exception_statement.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLC0414_import_aliasing.py.snap => ruff_linter__rules__pylint__tests__useless-import-alias_import_aliasing.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0116_continue_in_finally.py.snap => ruff_linter__rules__pylint__tests__useless-import-alias_import_aliasing_2____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLR1711_useless_return.py.snap => ruff_linter__rules__pylint__tests__useless-return_useless_return.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLW2101_useless_with_lock.py.snap => ruff_linter__rules__pylint__tests__useless-with-lock_useless_with_lock.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE1700_yield_from_in_async_function.py.snap => ruff_linter__rules__pylint__tests__yield-from-in-async-function_yield_from_in_async_function.py.snap} (100%) rename crates/ruff_linter/src/rules/pylint/snapshots/{ruff_linter__rules__pylint__tests__PLE0100_yield_in_init.py.snap => ruff_linter__rules__pylint__tests__yield-in-init_yield_in_init.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB161_FURB161.py.snap => ruff_linter__rules__refurb__tests__bit-count_FURB161.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB132_FURB132.py.snap => ruff_linter__rules__refurb__tests__check-and-remove-from-set_FURB132.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB131_FURB131.py.snap => ruff_linter__rules__refurb__tests__delete-full-slice_FURB131.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB116_FURB116.py.snap => ruff_linter__rules__refurb__tests__f-string-number-format_FURB116.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB142_FURB142.py.snap => ruff_linter__rules__refurb__tests__for-loop-set-mutations_FURB142.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB122_FURB122.py.snap => ruff_linter__rules__refurb__tests__for-loop-writes_FURB122.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB162_FURB162.py.snap => ruff_linter__rules__refurb__tests__fromisoformat-replace-z_FURB162.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB156_FURB156.py.snap => ruff_linter__rules__refurb__tests__hardcoded-string-charset_FURB156.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB181_FURB181.py.snap => ruff_linter__rules__refurb__tests__hashlib-digest-hex_FURB181.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB110_FURB110.py.snap => ruff_linter__rules__refurb__tests__if-exp-instead-of-or-operator_FURB110.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB136_FURB136.py.snap => ruff_linter__rules__refurb__tests__if-expr-min-max_FURB136.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB177_FURB177.py.snap => ruff_linter__rules__refurb__tests__implicit-cwd_FURB177.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB166_FURB166.py.snap => ruff_linter__rules__refurb__tests__int-on-sliced-str_FURB166.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB168_FURB168.py.snap => ruff_linter__rules__refurb__tests__isinstance-type-none_FURB168.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB187_FURB187.py.snap => ruff_linter__rules__refurb__tests__list-reverse-copy_FURB187.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB152_FURB152.py.snap => ruff_linter__rules__refurb__tests__math-constant_FURB152.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB180_FURB180.py.snap => ruff_linter__rules__refurb__tests__meta-class-abc-meta_FURB180.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB105_FURB105.py.snap => ruff_linter__rules__refurb__tests__print-empty-string_FURB105.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB101_FURB101_0.py.snap => ruff_linter__rules__refurb__tests__read-whole-file_FURB101_0.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB101_FURB101_1.py.snap => ruff_linter__rules__refurb__tests__read-whole-file_FURB101_1.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB101_FURB101_2.py.snap => ruff_linter__rules__refurb__tests__read-whole-file_FURB101_2.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB129_FURB129.py.snap => ruff_linter__rules__refurb__tests__readlines-in-for_FURB129.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB163_FURB163.py.snap => ruff_linter__rules__refurb__tests__redundant-log-base_FURB163.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB167_FURB167.py.snap => ruff_linter__rules__refurb__tests__regex-flag-alias_FURB167.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB118_FURB118.py.snap => ruff_linter__rules__refurb__tests__reimplemented-operator_FURB118.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB140_FURB140.py.snap => ruff_linter__rules__refurb__tests__reimplemented-starmap_FURB140.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB113_FURB113.py.snap => ruff_linter__rules__refurb__tests__repeated-append_FURB113.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB154_FURB154.py.snap => ruff_linter__rules__refurb__tests__repeated-global_FURB154.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB171_FURB171_0.py.snap => ruff_linter__rules__refurb__tests__single-item-membership-test_FURB171_0.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB171_FURB171_1.py.snap => ruff_linter__rules__refurb__tests__single-item-membership-test_FURB171_1.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB145_FURB145.py.snap => ruff_linter__rules__refurb__tests__slice-copy_FURB145.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB188_FURB188.py.snap => ruff_linter__rules__refurb__tests__slice-to-remove-prefix-or-suffix_FURB188.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB192_FURB192.py.snap => ruff_linter__rules__refurb__tests__sorted-min-max_FURB192.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB192_FURB192_1.py.snap => ruff_linter__rules__refurb__tests__sorted-min-max_FURB192_1.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB189_FURB189.py.snap => ruff_linter__rules__refurb__tests__subclass-builtin_FURB189.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB169_FURB169.py.snap => ruff_linter__rules__refurb__tests__type-none-comparison_FURB169.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB148_FURB148.py.snap => ruff_linter__rules__refurb__tests__unnecessary-enumerate_FURB148.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB164_FURB164.py.snap => ruff_linter__rules__refurb__tests__unnecessary-from-float_FURB164.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB157_FURB157.py.snap => ruff_linter__rules__refurb__tests__verbose-decimal-constructor_FURB157.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB103_FURB103_0.py.snap => ruff_linter__rules__refurb__tests__write-whole-file_FURB103_0.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB103_FURB103_1.py.snap => ruff_linter__rules__refurb__tests__write-whole-file_FURB103_1.py.snap} (100%) rename crates/ruff_linter/src/rules/refurb/snapshots/{ruff_linter__rules__refurb__tests__FURB103_FURB103_2.py.snap => ruff_linter__rules__refurb__tests__write-whole-file_FURB103_2.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__PY39_RUF013_RUF013_0.py.snap => ruff_linter__rules__ruff__tests__PY39_implicit-optional_RUF013_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__PY39_RUF013_RUF013_1.py.snap => ruff_linter__rules__ruff__tests__PY39_implicit-optional_RUF013_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF030_RUF030.py.snap => ruff_linter__rules__ruff__tests__assert-with-print-message_RUF030.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF018_RUF018.py.snap => ruff_linter__rules__ruff__tests__assignment-in-assert_RUF018.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF006_RUF006.py.snap => ruff_linter__rules__ruff__tests__asyncio-dangling-task_RUF006.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF053_RUF053.py.snap => ruff_linter__rules__ruff__tests__class-with-mixed-type-vars_RUF053.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF005_RUF005.py.snap => ruff_linter__rules__ruff__tests__collection-literal-concatenation_RUF005.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF005_RUF005_slices.py.snap => ruff_linter__rules__ruff__tests__collection-literal-concatenation_RUF005_slices.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF052_RUF052_0.py.snap => ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__used-dummy-variable_RUF052_0.py_1.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__RUF052_RUF052_0.py_2.snap => ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__used-dummy-variable_RUF052_0.py_2.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF049_RUF049.py.snap => ruff_linter__rules__ruff__tests__dataclass-enum_RUF049.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF032_RUF032.py.snap => ruff_linter__rules__ruff__tests__decimal-from-float-literal_RUF032.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF026_RUF026.py.snap => ruff_linter__rules__ruff__tests__default-factory-kwarg_RUF026.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF068_RUF068.py.snap => ruff_linter__rules__ruff__tests__duplicate-entry-in-dunder-all_RUF068.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF010_RUF010.py.snap => ruff_linter__rules__ruff__tests__explicit-f-string-type-conversion_RUF010.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF056_RUF056.py.snap => ruff_linter__rules__ruff__tests__falsy-dict-get-fallback_RUF056.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF009_RUF009.py.snap => ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF009_RUF009_attrs.py.snap => ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_attrs.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF008_RUF008_deferred.py.snap => ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_attrs_auto_attribs.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF009_RUF009_deferred.py.snap => ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_deferred.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF051_RUF051.py.snap => ruff_linter__rules__ruff__tests__if-key-in-dict-del_RUF051.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF013_RUF013_0.py.snap => ruff_linter__rules__ruff__tests__implicit-optional_RUF013_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF013_RUF013_1.py.snap => ruff_linter__rules__ruff__tests__implicit-optional_RUF013_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF009_RUF009_attrs_auto_attribs.py.snap => ruff_linter__rules__ruff__tests__implicit-optional_RUF013_2.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF013_RUF013_3.py.snap => ruff_linter__rules__ruff__tests__implicit-optional_RUF013_3.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF013_RUF013_4.py.snap => ruff_linter__rules__ruff__tests__implicit-optional_RUF013_4.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF060_RUF060.py.snap => ruff_linter__rules__ruff__tests__in-empty-collection_RUF060.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF074_RUF074.py.snap => ruff_linter__rules__ruff__tests__incorrect-decorator-order_RUF074.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF031_RUF031.py.snap => ruff_linter__rules__ruff__tests__incorrectly-parenthesized-tuple-in-subscript_RUF031.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF040_RUF040.py.snap => ruff_linter__rules__ruff__tests__invalid-assert-message-literal-argument_RUF040.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF028_RUF028.py.snap => ruff_linter__rules__ruff__tests__invalid-formatter-suppression-comment_RUF028.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF016_RUF016.py.snap => ruff_linter__rules__ruff__tests__invalid-index-type_RUF016.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF200_bleach.snap => ruff_linter__rules__ruff__tests__invalid-pyproject-toml_bleach.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF200_invalid_author.snap => ruff_linter__rules__ruff__tests__invalid-pyproject-toml_invalid_author.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF012_RUF012_deferred.py.snap => ruff_linter__rules__ruff__tests__invalid-pyproject-toml_maturin.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF013_RUF013_2.py.snap => ruff_linter__rules__ruff__tests__invalid-pyproject-toml_pep639.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF200_various_invalid.snap => ruff_linter__rules__ruff__tests__invalid-pyproject-toml_various_invalid.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF102_RUF102.py.snap => ruff_linter__rules__ruff__tests__invalid-rule-code_RUF102.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF027_RUF027_1.py.snap => ruff_linter__rules__ruff__tests__invalid-rule-code_RUF102_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF061_RUF061_deprecated_call.py.snap => ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_deprecated_call.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF061_RUF061_raises.py.snap => ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_raises.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF061_RUF061_warns.py.snap => ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_warns.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF065_RUF065_0.py.snap => ruff_linter__rules__ruff__tests__logging-eager-conversion_RUF065_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF065_RUF065_1.py.snap => ruff_linter__rules__ruff__tests__logging-eager-conversion_RUF065_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF048_RUF048.py.snap => ruff_linter__rules__ruff__tests__map-int-version-parsing_RUF048.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF048_RUF048_1.py.snap => ruff_linter__rules__ruff__tests__map-int-version-parsing_RUF048_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF027_RUF027_0.py.snap => ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF027_RUF027_2.py.snap => ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF067_RUF067__modules__okay.py.snap => ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_2.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF012_RUF012.py.snap => ruff_linter__rules__ruff__tests__mutable-class-default_RUF012.py.snap} (99%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF102_RUF102_1.py.snap => ruff_linter__rules__ruff__tests__mutable-class-default_RUF012_deferred.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF008_RUF008.py.snap => ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF008_RUF008_attrs.py.snap => ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008_attrs.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF200_maturin.snap => ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008_deferred.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF024_RUF024.py.snap => ruff_linter__rules__ruff__tests__mutable-fromkeys-value_RUF024.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF047_RUF047_for.py.snap => ruff_linter__rules__ruff__tests__needless-else_RUF047_for.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF047_RUF047_if.py.snap => ruff_linter__rules__ruff__tests__needless-else_RUF047_if.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF047_RUF047_try.py.snap => ruff_linter__rules__ruff__tests__needless-else_RUF047_try.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF047_RUF047_while.py.snap => ruff_linter__rules__ruff__tests__needless-else_RUF047_while.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF020_RUF020.py.snap => ruff_linter__rules__ruff__tests__never-union_RUF020.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF067_RUF067__modules____init__.py.snap => ruff_linter__rules__ruff__tests__non-empty-init-module_RUF067__modules____init__.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF200_pep639.snap => ruff_linter__rules__ruff__tests__non-empty-init-module_RUF067__modules__okay.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF064_RUF064.py.snap => ruff_linter__rules__ruff__tests__non-octal-permissions_RUF064.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF036_RUF036.py.snap => ruff_linter__rules__ruff__tests__none-not-at-end-of-union_RUF036.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF036_RUF036.pyi.snap => ruff_linter__rules__ruff__tests__none-not-at-end-of-union_RUF036.pyi.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF021_RUF021.py.snap => ruff_linter__rules__ruff__tests__parenthesize-chained-operators_RUF021.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF033_RUF033.py.snap => ruff_linter__rules__ruff__tests__post-init-default_RUF033.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF073_RUF073.py.snap => ruff_linter__rules__ruff__tests__preview__f-string-percent-format_RUF073.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF069_RUF069.py.snap => ruff_linter__rules__ruff__tests__preview__float-equality-comparison_RUF069.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF045_RUF045.py.snap => ruff_linter__rules__ruff__tests__preview__implicit-class-var-in-dataclass_RUF045.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF054_RUF054.py.snap => ruff_linter__rules__ruff__tests__preview__indented-form-feed_RUF054.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF008_RUF008.py.snap => ruff_linter__rules__ruff__tests__preview__mutable-dataclass-default_RUF008.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF008_RUF008_attrs.py.snap => ruff_linter__rules__ruff__tests__preview__mutable-dataclass-default_RUF008_attrs.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF071_RUF071.py.snap => ruff_linter__rules__ruff__tests__preview__os-path-commonprefix_RUF071.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__py37__RUF039_RUF039_py_version_sensitive.py.snap => ruff_linter__rules__ruff__tests__preview__py37__unraw-re-pattern_RUF039_py_version_sensitive.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__py38__RUF039_RUF039_py_version_sensitive.py.snap => ruff_linter__rules__ruff__tests__preview__py38__unraw-re-pattern_RUF039_py_version_sensitive.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF070_RUF070.py.snap => ruff_linter__rules__ruff__tests__preview__unnecessary-assign-before-yield_RUF070.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_0.py.snap => ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_1.py.snap => ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_2.py.snap => ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_2.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_3.py.snap => ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_3.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF039_RUF039.py.snap => ruff_linter__rules__ruff__tests__preview__unraw-re-pattern_RUF039.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF039_RUF039_concat.py.snap => ruff_linter__rules__ruff__tests__preview__unraw-re-pattern_RUF039_concat.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__preview__RUF072_RUF072.py.snap => ruff_linter__rules__ruff__tests__preview__useless-finally_RUF072.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF066_RUF066.py.snap => ruff_linter__rules__ruff__tests__property-without-return_RUF066.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__py314__RUF058_RUF058_2.py.snap => ruff_linter__rules__ruff__tests__py314__starmap-zip_RUF058_2.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF043_RUF043.py.snap => ruff_linter__rules__ruff__tests__pytest-raises-ambiguous-pattern_RUF043.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF017_RUF017_0.py.snap => ruff_linter__rules__ruff__tests__quadratic-list-summation_RUF017_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF017_RUF017_1.py.snap => ruff_linter__rules__ruff__tests__quadratic-list-summation_RUF017_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF101_RUF101_0.py.snap => ruff_linter__rules__ruff__tests__redirected-noqa_RUF101_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF101_RUF101_1.py.snap => ruff_linter__rules__ruff__tests__redirected-noqa_RUF101_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF038_RUF038.py.snap => ruff_linter__rules__ruff__tests__redundant-bool-literal_RUF038.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF038_RUF038.pyi.snap => ruff_linter__rules__ruff__tests__redundant-bool-literal_RUF038.pyi.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF058_RUF058_0.py.snap => ruff_linter__rules__ruff__tests__starmap-zip_RUF058_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF058_RUF058_1.py.snap => ruff_linter__rules__ruff__tests__starmap-zip_RUF058_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF046_RUF046.py.snap => ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF046_RUF046_CR.py.snap => ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046_CR.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF046_RUF046_LF.py.snap => ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046_LF.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF037_RUF037.py.snap => ruff_linter__rules__ruff__tests__unnecessary-empty-iterable-within-deque-call_RUF037.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF050_RUF050.py.snap => ruff_linter__rules__ruff__tests__unnecessary-if_RUF050.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF015_RUF015.py.snap => ruff_linter__rules__ruff__tests__unnecessary-iterable-allocation-for-first-element_RUF015.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF019_RUF019.py.snap => ruff_linter__rules__ruff__tests__unnecessary-key-check_RUF019.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF041_RUF041.py.snap => ruff_linter__rules__ruff__tests__unnecessary-nested-literal_RUF041.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF041_RUF041.pyi.snap => ruff_linter__rules__ruff__tests__unnecessary-nested-literal_RUF041.pyi.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF057_RUF057.py.snap => ruff_linter__rules__ruff__tests__unnecessary-round_RUF057.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF022_RUF022.py.snap => ruff_linter__rules__ruff__tests__unsorted-dunder-all_RUF022.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF023_RUF023.py.snap => ruff_linter__rules__ruff__tests__unsorted-dunder-slots_RUF023.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF029_RUF029.py.snap => ruff_linter__rules__ruff__tests__unused-async_RUF029.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF059_RUF059_0.py.snap => ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF059_RUF059_1.py.snap => ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF059_RUF059_2.py.snap => ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_2.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF059_RUF059_3.py.snap => ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_3.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__RUF052_RUF052_0.py_1.snap => ruff_linter__rules__ruff__tests__used-dummy-variable_RUF052_0.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF052_RUF052_1.py.snap => ruff_linter__rules__ruff__tests__used-dummy-variable_RUF052_1.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF034_RUF034.py.snap => ruff_linter__rules__ruff__tests__useless-if-else_RUF034.py.snap} (100%) rename crates/ruff_linter/src/rules/ruff/snapshots/{ruff_linter__rules__ruff__tests__RUF007_RUF007.py.snap => ruff_linter__rules__ruff__tests__zip-instead-of-pairwise_RUF007.py.snap} (100%) diff --git a/crates/ruff/src/commands/check.rs b/crates/ruff/src/commands/check.rs index d363801ccdb856..a5bbdee9b4b961 100644 --- a/crates/ruff/src/commands/check.rs +++ b/crates/ruff/src/commands/check.rs @@ -258,7 +258,7 @@ mod test { } // Configure - let snapshot = format!("{}_{}", rule_code.noqa_code(), path); + let snapshot = format!("{}_{}", rule_code.name(), path); // invalid pyproject.toml is not active by default let settings = Settings { linter: LinterSettings::for_rules(vec![rule_code, Rule::InvalidPyprojectToml]), diff --git a/crates/ruff/src/commands/snapshots/ruff__commands__check__test__E902_E902.py.snap b/crates/ruff/src/commands/snapshots/ruff__commands__check__test__io-error_E902.py.snap similarity index 100% rename from crates/ruff/src/commands/snapshots/ruff__commands__check__test__E902_E902.py.snap rename to crates/ruff/src/commands/snapshots/ruff__commands__check__test__io-error_E902.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/mod.rs b/crates/ruff_linter/src/rules/airflow/mod.rs index f6e7baa22416d4..615c85a6a56cc2 100644 --- a/crates/ruff_linter/src/rules/airflow/mod.rs +++ b/crates/ruff_linter/src/rules/airflow/mod.rs @@ -67,7 +67,7 @@ mod tests { #[test_case(Rule::Airflow3SuggestedToMoveToProvider, Path::new("AIR312.py"))] #[test_case(Rule::Airflow3SuggestedToMoveToProvider, Path::new("AIR312_try.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("airflow").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR002_AIR002.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-dag-no-schedule-argument_AIR002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR002_AIR002.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-dag-no-schedule-argument_AIR002.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR004_AIR004.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-task-branch-as-short-circuit_AIR004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR004_AIR004.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-task-branch-as-short-circuit_AIR004.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR004_AIR004_sdk.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-task-branch-as-short-circuit_AIR004_sdk.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR004_AIR004_sdk.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-task-branch-as-short-circuit_AIR004_sdk.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR202_AIR202.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-task-implicit-multiple-outputs_AIR202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR202_AIR202.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-task-implicit-multiple-outputs_AIR202.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR003_AIR003.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR003_AIR003.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR003_AIR003_dag_decorator.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003_dag_decorator.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR003_AIR003_dag_decorator.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003_dag_decorator.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR003_AIR003_no_dag.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003_no_dag.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR003_AIR003_no_dag.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-get-outside-task_AIR003_no_dag.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR001_AIR001.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-name-task-id-mismatch_AIR001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR001_AIR001.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-variable-name-task-id-mismatch_AIR001.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR201_AIR201.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-xcom-pull-in-template-string_AIR201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR201_AIR201.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow-xcom-pull-in-template-string_AIR201.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR304_AIR304.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-dag-dynamic-value_AIR304.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR304_AIR304.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-dag-dynamic-value_AIR304.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR303_AIR303.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-incompatible-function-signature_AIR303.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR303_AIR303.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-incompatible-function-signature_AIR303.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_amazon.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_amazon.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_amazon.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_amazon.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_celery.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_celery.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_celery.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_celery.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_common_sql.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_common_sql.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_common_sql.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_common_sql.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_daskexecutor.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_daskexecutor.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_daskexecutor.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_daskexecutor.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_druid.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_druid.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_druid.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_druid.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_fab.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_fab.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_fab.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_fab.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_hdfs.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_hdfs.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_hdfs.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_hdfs.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_hive.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_hive.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_hive.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_hive.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_http.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_http.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_http.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_http.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_jdbc.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_jdbc.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_jdbc.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_jdbc.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_kubernetes.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_kubernetes.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_kubernetes.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_kubernetes.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_mysql.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_mysql.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_mysql.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_mysql.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_oracle.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_oracle.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_oracle.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_oracle.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_papermill.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_papermill.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_papermill.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_papermill.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_pig.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_pig.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_pig.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_pig.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_postgres.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_postgres.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_postgres.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_postgres.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_presto.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_presto.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_presto.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_presto.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_samba.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_samba.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_samba.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_samba.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_slack.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_slack.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_slack.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_slack.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_smtp.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_smtp.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_smtp.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_smtp.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_sqlite.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_sqlite.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_sqlite.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_sqlite.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_standard.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_standard.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_standard.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_standard.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_try.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_try.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_try.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_try.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_zendesk.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_zendesk.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_zendesk.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-moved-to-provider_AIR302_zendesk.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_airflow_plugin.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_airflow_plugin.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_airflow_plugin.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_airflow_plugin.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_args.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_args.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_args.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_args.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_class_attribute.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_class_attribute.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_class_attribute.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_class_attribute.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_context.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_context.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_context.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_context.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_decorator.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_decorator.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_decorator.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_decorator.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_fix.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names_fix.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_fix.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names_fix.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_try.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names_try.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_try.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_names_try.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_provider_names_fix.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_provider_names_fix.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_provider_names_fix.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-removal_AIR301_provider_names_fix.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR312_AIR312.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-to-move-to-provider_AIR312.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR312_AIR312.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-to-move-to-provider_AIR312.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR311_AIR311_try.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-to-move-to-provider_AIR312_try.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR311_AIR311_try.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-to-move-to-provider_AIR312_try.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR311_AIR311_args.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_args.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR311_AIR311_args.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_args.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR311_AIR311_names.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_names.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR311_AIR311_names.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_names.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR312_AIR312_try.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_try.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR312_AIR312_try.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow3-suggested-update_AIR311_try.py.snap diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR321_AIR321_names.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow31-moved_AIR321_names.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR321_AIR321_names.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__airflow31-moved_AIR321_names.py.snap diff --git a/crates/ruff_linter/src/rules/eradicate/mod.rs b/crates/ruff_linter/src/rules/eradicate/mod.rs index 328868a878c538..be9e2a623fc9fb 100644 --- a/crates/ruff_linter/src/rules/eradicate/mod.rs +++ b/crates/ruff_linter/src/rules/eradicate/mod.rs @@ -15,7 +15,7 @@ mod tests { #[test_case(Rule::CommentedOutCode, Path::new("ERA001.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("eradicate").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/eradicate/snapshots/ruff_linter__rules__eradicate__tests__ERA001_ERA001.py.snap b/crates/ruff_linter/src/rules/eradicate/snapshots/ruff_linter__rules__eradicate__tests__commented-out-code_ERA001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/eradicate/snapshots/ruff_linter__rules__eradicate__tests__ERA001_ERA001.py.snap rename to crates/ruff_linter/src/rules/eradicate/snapshots/ruff_linter__rules__eradicate__tests__commented-out-code_ERA001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/mod.rs b/crates/ruff_linter/src/rules/flake8_2020/mod.rs index 21a0e46ad7478f..ddcb398677a072 100644 --- a/crates/ruff_linter/src/rules/flake8_2020/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_2020/mod.rs @@ -24,7 +24,7 @@ mod tests { #[test_case(Rule::SysVersionCmpStr10, Path::new("YTT302.py"))] #[test_case(Rule::SysVersionSlice1, Path::new("YTT303.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_2020").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT202_YTT202.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__six-py3_YTT202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT202_YTT202.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__six-py3_YTT202.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT302_YTT302.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-cmp-str10_YTT302.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT302_YTT302.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-cmp-str10_YTT302.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT103_YTT103.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-cmp-str3_YTT103.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT103_YTT103.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-cmp-str3_YTT103.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT204_YTT204.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-info-minor-cmp-int_YTT204.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT204_YTT204.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-info-minor-cmp-int_YTT204.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT201_YTT201.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-info0-eq3_YTT201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT201_YTT201.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-info0-eq3_YTT201.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT203_YTT203.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-info1-cmp-int_YTT203.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT203_YTT203.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-info1-cmp-int_YTT203.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT303_YTT303.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-slice1_YTT303.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT303_YTT303.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-slice1_YTT303.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT101_YTT101.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-slice3_YTT101.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT101_YTT101.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version-slice3_YTT101.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT301_YTT301.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version0_YTT301.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT301_YTT301.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version0_YTT301.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT102_YTT102.py.snap b/crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version2_YTT102.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__YTT102_YTT102.py.snap rename to crates/ruff_linter/src/rules/flake8_2020/snapshots/ruff_linter__rules__flake8_2020__tests__sys-version2_YTT102.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/mod.rs b/crates/ruff_linter/src/rules/flake8_async/mod.rs index 4d5c6029282281..12d114988b2e25 100644 --- a/crates/ruff_linter/src/rules/flake8_async/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_async/mod.rs @@ -33,7 +33,7 @@ mod tests { #[test_case(Rule::BlockingInputInAsyncFunction, Path::new("ASYNC250.py"))] #[test_case(Rule::BlockingSleepInAsyncFunction, Path::new("ASYNC251.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_async").join(path).as_path(), &LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC110_ASYNC110.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-busy-wait_ASYNC110.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC110_ASYNC110.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-busy-wait_ASYNC110.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC109_ASYNC109_0.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-function-with-timeout_ASYNC109_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC109_ASYNC109_0.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-function-with-timeout_ASYNC109_0.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC109_ASYNC109_1.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-function-with-timeout_ASYNC109_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC109_ASYNC109_1.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-function-with-timeout_ASYNC109_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC115_ASYNC115.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-zero-sleep_ASYNC115.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC115_ASYNC115.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__async-zero-sleep_ASYNC115.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC212_ASYNC212.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-http-call-httpx-in-async-function_ASYNC212.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC212_ASYNC212.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-http-call-httpx-in-async-function_ASYNC212.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC210_ASYNC210.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-http-call-in-async-function_ASYNC210.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC210_ASYNC210.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-http-call-in-async-function_ASYNC210.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC250_ASYNC250.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-input-in-async-function_ASYNC250.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC250_ASYNC250.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-input-in-async-function_ASYNC250.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC230_ASYNC230.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-open-call-in-async-function_ASYNC230.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC230_ASYNC230.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-open-call-in-async-function_ASYNC230.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC240_ASYNC240.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-path-method-in-async-function_ASYNC240.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC240_ASYNC240.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-path-method-in-async-function_ASYNC240.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC251_ASYNC251.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-sleep-in-async-function_ASYNC251.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC251_ASYNC251.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__blocking-sleep-in-async-function_ASYNC251.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC100_ASYNC100.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__cancel-scope-no-checkpoint_ASYNC100.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC100_ASYNC100.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__cancel-scope-no-checkpoint_ASYNC100.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC220_ASYNC22x.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__create-subprocess-in-async-function_ASYNC22x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC220_ASYNC22x.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__create-subprocess-in-async-function_ASYNC22x.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC116_ASYNC116.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__long-sleep-not-forever_ASYNC116.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC116_ASYNC116.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__long-sleep-not-forever_ASYNC116.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC221_ASYNC22x.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__run-process-in-async-function_ASYNC22x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC221_ASYNC22x.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__run-process-in-async-function_ASYNC22x.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC105_ASYNC105.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__trio-sync-call_ASYNC105.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC105_ASYNC105.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__trio-sync-call_ASYNC105.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC222_ASYNC22x.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__wait-for-process-in-async-function_ASYNC22x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC222_ASYNC22x.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__wait-for-process-in-async-function_ASYNC22x.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC119_ASYNC119.py.snap b/crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__yield-in-context-manager-in-async-generator_ASYNC119.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__ASYNC119_ASYNC119.py.snap rename to crates/ruff_linter/src/rules/flake8_async/snapshots/ruff_linter__rules__flake8_async__tests__yield-in-context-manager-in-async-generator_ASYNC119.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/mod.rs b/crates/ruff_linter/src/rules/flake8_bandit/mod.rs index f978ecc22d3b72..2cb386c4a6c028 100644 --- a/crates/ruff_linter/src/rules/flake8_bandit/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_bandit/mod.rs @@ -88,7 +88,7 @@ mod tests { #[test_case(Rule::DjangoRawSql, Path::new("S611.py"))] #[test_case(Rule::TarfileUnsafeMembers, Path::new("S202.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_bandit").join(path).as_path(), &LinterSettings::for_rule(rule_code), @@ -106,11 +106,7 @@ mod tests { #[test_case(Rule::SuspiciousTelnetUsage, Path::new("S312.py"))] #[test_case(Rule::UnsafeYAMLLoad, Path::new("S506.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); assert_diagnostics_diff!( snapshot, diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S101_S101.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__assert_S101.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S101_S101.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__assert_S101.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S103_S103.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__bad-file-permissions_S103.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S103_S103.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__bad-file-permissions_S103.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S604_S604.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__call-with-shell-equals-true_S604.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S604_S604.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__call-with-shell-equals-true_S604.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S610_S610.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__django-extra_S610.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S610_S610.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__django-extra_S610.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S611_S611.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__django-raw-sql_S611.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S611_S611.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__django-raw-sql_S611.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S102_S102.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__exec-builtin_S102.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S102_S102.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__exec-builtin_S102.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S201_S201.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__flask-debug-true_S201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S201_S201.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__flask-debug-true_S201.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S104_S104.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-bind-all-interfaces_S104.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S104_S104.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-bind-all-interfaces_S104.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S107_S107.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-password-default_S107.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S107_S107.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-password-default_S107.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S106_S106.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-password-func-arg_S106.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S106_S106.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-password-func-arg_S106.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S105_S105.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-password-string_S105.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S105_S105.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-password-string_S105.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S608_S608.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-sql-expression_S608.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S608_S608.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-sql-expression_S608.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S108_S108.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-temp-file_S108.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S108_S108.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hardcoded-temp-file_S108.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S324_S324.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hashlib-insecure-hash-function_S324.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S324_S324.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__hashlib-insecure-hash-function_S324.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S701_S701.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__jinja2-autoescape-false_S701.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S701_S701.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__jinja2-autoescape-false_S701.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S612_S612.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__logging-config-insecure-listen_S612.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S612_S612.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__logging-config-insecure-listen_S612.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S702_S702.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__mako-templates_S702.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S702_S702.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__mako-templates_S702.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S601_S601.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__paramiko-call_S601.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S601_S601.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__paramiko-call_S601.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S103_S103.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__bad-file-permissions_S103.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S103_S103.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__bad-file-permissions_S103.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S307_S307.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-eval-usage_S307.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S307_S307.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-eval-usage_S307.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S308_S308.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-mark-safe-usage_S308.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S308_S308.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-mark-safe-usage_S308.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S311_S311.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-non-cryptographic-random-usage_S311.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S311_S311.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-non-cryptographic-random-usage_S311.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S301_S301.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-pickle-usage_S301.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S301_S301.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-pickle-usage_S301.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S312_S312.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-telnet-usage_S312.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S312_S312.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-telnet-usage_S312.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S310_S310.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-url-open-usage_S310.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S310_S310.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__suspicious-url-open-usage_S310.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S506_S506.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__unsafe-yaml-load_S506.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__S506_S506.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__preview__unsafe-yaml-load_S506.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S501_S501.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__request-with-no-cert-validation_S501.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S501_S501.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__request-with-no-cert-validation_S501.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S113_S113.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__request-without-timeout_S113.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S113_S113.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__request-without-timeout_S113.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S508_S508.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__snmp-insecure-version_S508.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S508_S508.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__snmp-insecure-version_S508.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S509_S509.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__snmp-weak-cryptography_S509.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S509_S509.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__snmp-weak-cryptography_S509.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S507_S507.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssh-no-host-key-verification_S507.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S507_S507.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssh-no-host-key-verification_S507.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S502_S502.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssl-insecure-version_S502.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S502_S502.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssl-insecure-version_S502.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S503_S503.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssl-with-bad-defaults_S503.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S503_S503.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssl-with-bad-defaults_S503.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S504_S504.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssl-with-no-version_S504.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S504_S504.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__ssl-with-no-version_S504.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S605_S605.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__start-process-with-a-shell_S605.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S605_S605.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__start-process-with-a-shell_S605.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S606_S606.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__start-process-with-no-shell_S606.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S606_S606.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__start-process-with-no-shell_S606.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S607_S607.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__start-process-with-partial-path_S607.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S607_S607.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__start-process-with-partial-path_S607.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S602_S602.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__subprocess-popen-with-shell-equals-true_S602.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S602_S602.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__subprocess-popen-with-shell-equals-true_S602.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S603_S603.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__subprocess-without-shell-equals-true_S603.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S603_S603.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__subprocess-without-shell-equals-true_S603.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S307_S307.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-eval-usage_S307.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S307_S307.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-eval-usage_S307.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S402_S402.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-ftplib-import_S402.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S402_S402.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-ftplib-import_S402.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S401_S401.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-ftplib-import_S402.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S401_S401.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-ftplib-import_S402.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S412_S412.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-httpoxy-import_S412.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S412_S412.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-httpoxy-import_S412.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S402_S402.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-httpoxy-import_S412.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S402_S402.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-httpoxy-import_S412.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S410_S410.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-lxml-import_S410.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S410_S410.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-lxml-import_S410.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S403_S403.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-lxml-import_S410.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S403_S403.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-lxml-import_S410.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S308_S308.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-mark-safe-usage_S308.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S308_S308.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-mark-safe-usage_S308.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S311_S311.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-non-cryptographic-random-usage_S311.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S311_S311.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-non-cryptographic-random-usage_S311.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S403_S403.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-import_S403.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S403_S403.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-import_S403.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S404_S404.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-import_S403.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S404_S404.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-import_S403.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S301_S301.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-usage_S301.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S301_S301.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pickle-usage_S301.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S413_S413.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pycrypto-import_S413.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S413_S413.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pycrypto-import_S413.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S405_S405.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pycrypto-import_S413.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S405_S405.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pycrypto-import_S413.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S415_S415.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pyghmi-import_S415.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S415_S415.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pyghmi-import_S415.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S406_S406.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pyghmi-import_S415.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S406_S406.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-pyghmi-import_S415.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S404_S404.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-subprocess-import_S404.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S404_S404.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-subprocess-import_S404.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S407_S407.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-subprocess-import_S404.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S407_S407.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-subprocess-import_S404.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S312_S312.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-telnet-usage_S312.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S312_S312.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-telnet-usage_S312.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S401_S401.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-telnetlib-import_S401.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S401_S401.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-telnetlib-import_S401.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S408_S408.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-telnetlib-import_S401.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S408_S408.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-telnetlib-import_S401.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S310_S310.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-url-open-usage_S310.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S310_S310.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-url-open-usage_S310.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S405_S405.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-etree-import_S405.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S405_S405.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-etree-import_S405.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S408_S408_type_checking.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-etree-import_S405.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S408_S408_type_checking.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-etree-import_S405.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S407_S407.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-expat-import_S407.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S407_S407.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-expat-import_S407.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S409_S409.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-expat-import_S407.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S409_S409.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-expat-import_S407.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S408_S408.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S408_S408.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S410_S410.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S410_S410.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S411_S411.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408_type_checking.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S411_S411.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-minidom-import_S408_type_checking.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S409_S409.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-pulldom-import_S409.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S409_S409.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-pulldom-import_S409.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S412_S412.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-pulldom-import_S409.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S412_S412.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-pulldom-import_S409.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S406_S406.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-sax-import_S406.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S406_S406.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-sax-import_S406.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S413_S413.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-sax-import_S406.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S413_S413.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xml-sax-import_S406.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S411_S411.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xmlrpc-import_S411.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S411_S411.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xmlrpc-import_S411.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S415_S415.pyi.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xmlrpc-import_S411.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S415_S415.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__suspicious-xmlrpc-import_S411.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S202_S202.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__tarfile-unsafe-members_S202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S202_S202.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__tarfile-unsafe-members_S202.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S112_S112.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__try-except-continue_S112.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S112_S112.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__try-except-continue_S112.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S110_S110.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__try-except-pass_S110.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S110_S110.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__try-except-pass_S110.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S609_S609.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__unix-command-wildcard-injection_S609.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S609_S609.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__unix-command-wildcard-injection_S609.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S506_S506.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__unsafe-yaml-load_S506.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S506_S506.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__unsafe-yaml-load_S506.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S505_S505.py.snap b/crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__weak-cryptographic-key_S505.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__S505_S505.py.snap rename to crates/ruff_linter/src/rules/flake8_bandit/snapshots/ruff_linter__rules__flake8_bandit__tests__weak-cryptographic-key_S505.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_blind_except/mod.rs b/crates/ruff_linter/src/rules/flake8_blind_except/mod.rs index 658908efb6fbe9..9488f444f56ee7 100644 --- a/crates/ruff_linter/src/rules/flake8_blind_except/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_blind_except/mod.rs @@ -14,7 +14,7 @@ mod tests { #[test_case(Rule::BlindExcept, Path::new("BLE.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_blind_except").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_blind_except/snapshots/ruff_linter__rules__flake8_blind_except__tests__BLE001_BLE.py.snap b/crates/ruff_linter/src/rules/flake8_blind_except/snapshots/ruff_linter__rules__flake8_blind_except__tests__blind-except_BLE.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_blind_except/snapshots/ruff_linter__rules__flake8_blind_except__tests__BLE001_BLE.py.snap rename to crates/ruff_linter/src/rules/flake8_blind_except/snapshots/ruff_linter__rules__flake8_blind_except__tests__blind-except_BLE.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_boolean_trap/mod.rs b/crates/ruff_linter/src/rules/flake8_boolean_trap/mod.rs index cd7832181c688a..0797601cf56366 100644 --- a/crates/ruff_linter/src/rules/flake8_boolean_trap/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_boolean_trap/mod.rs @@ -19,7 +19,7 @@ mod tests { #[test_case(Rule::BooleanDefaultValuePositionalArgument, Path::new("FBT.py"))] #[test_case(Rule::BooleanPositionalValueInCall, Path::new("FBT.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_boolean_trap").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__FBT002_FBT.py.snap b/crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__boolean-default-value-positional-argument_FBT.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__FBT002_FBT.py.snap rename to crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__boolean-default-value-positional-argument_FBT.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__FBT003_FBT.py.snap b/crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__boolean-positional-value-in-call_FBT.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__FBT003_FBT.py.snap rename to crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__boolean-positional-value-in-call_FBT.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__FBT001_FBT.py.snap b/crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__boolean-type-hint-positional-argument_FBT.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__FBT001_FBT.py.snap rename to crates/ruff_linter/src/rules/flake8_boolean_trap/snapshots/ruff_linter__rules__flake8_boolean_trap__tests__boolean-type-hint-positional-argument_FBT.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs b/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs index 53fb8d510afd6a..9caf4661d85567 100644 --- a/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_bugbear/mod.rs @@ -76,7 +76,7 @@ mod tests { #[test_case(Rule::BatchedWithoutExplicitStrict, Path::new("B911.py"))] #[test_case(Rule::MapWithoutExplicitStrict, Path::new("B912.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_bugbear").join(path).as_path(), &LinterSettings::for_rule(rule_code), @@ -97,11 +97,7 @@ mod tests { #[test_case(Rule::MutableArgumentDefault, Path::new("B006_B008.py"))] #[test_case(Rule::MutableArgumentDefault, Path::new("B006_1.pyi"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_bugbear").join(path).as_path(), &LinterSettings::for_rule(rule_code) @@ -134,7 +130,7 @@ mod tests { ) -> Result<()> { let snapshot = format!( "{}_py{}{}_{}", - rule_code.noqa_code(), + rule_code.name(), target_version.major, target_version.minor, path.to_string_lossy(), diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B024_B024.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__abstract-base-class-without-abstract-method_B024.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B024_B024.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__abstract-base-class-without-abstract-method_B024.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B011_B011.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assert-false_B011.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B011_B011.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assert-false_B011.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_0.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assert-raises-exception_B017_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_0.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assert-raises-exception_B017_0.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assert-raises-exception_B017_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B017_B017_1.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assert-raises-exception_B017_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B003_B003.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assignment-to-os-environ_B003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B003_B003.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__assignment-to-os-environ_B003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B911_B911.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__batched-without-explicit-strict_B911.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B911_B911.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__batched-without-explicit-strict_B911.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B019_B019.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__cached-instance-method_B019.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B019_B019.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__cached-instance-method_B019.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B903_class_as_data_structure.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__class-as-data-structure_class_as_data_structure.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B903_class_as_data_structure.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__class-as-data-structure_class_as_data_structure.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B903_py39_class_as_data_structure.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__class-as-data-structure_py39_class_as_data_structure.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B903_py39_class_as_data_structure.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__class-as-data-structure_py39_class_as_data_structure.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B043_B043.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__del-attr-with-constant_B043.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B043_B043.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__del-attr-with-constant_B043.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B014_B014.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__duplicate-handler-exception_B014.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B014_B014.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__duplicate-handler-exception_B014.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B025_B025.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__duplicate-try-block-exception_B025.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B025_B025.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__duplicate-try-block-exception_B025.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B033_B033.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__duplicate-value_B033.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B033_B033.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__duplicate-value_B033.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B027_B027.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__empty-method-without-abstract-decorator_B027.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B027_B027.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__empty-method-without-abstract-decorator_B027.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_1.pyi.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__empty-method-without-abstract-decorator_B027.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_1.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__empty-method-without-abstract-decorator_B027.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B029_B029.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__except-with-empty-tuple_B029.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B029_B029.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__except-with-empty-tuple_B029.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B030_B030.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__except-with-non-exception-classes_B030.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B030_B030.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__except-with-non-exception-classes_B030.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B021_B021.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__f-string-docstring_B021.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B021_B021.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__f-string-docstring_B021.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__function-call-in-default-argument_B006_B008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B008_B006_B008.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__function-call-in-default-argument_B006_B008.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B023_B023.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__function-uses-loop-variable_B023.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B023_B023.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__function-uses-loop-variable_B023.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B009_B009_B010.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__get-attr-with-constant_B009_B010.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B009_B009_B010.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__get-attr-with-constant_B009_B010.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B012_B012.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__jump-statement-in-finally_B012.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B012_B012.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__jump-statement-in-finally_B012.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B909_B909.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__loop-iterator-mutation_B909.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B909_B909.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__loop-iterator-mutation_B909.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B020_B020.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__loop-variable-overrides-iterator_B020.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B020_B020.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__loop-variable-overrides-iterator_B020.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B912_B912.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__map-without-explicit-strict_B912.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B912_B912.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__map-without-explicit-strict_B912.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B027_B027.pyi.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__map-without-explicit-strict_py313_B912.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B027_B027.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__map-without-explicit-strict_py313_B912.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_1.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_1.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B035_py315_B035_py315.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_1.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B035_py315_B035_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_1.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_2.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_2.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_3.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_3.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_4.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_4.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_4.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_5.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_5.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_5.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_6.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_6.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_6.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_6.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_7.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_7.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_7.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_7.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_8.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_8.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_8.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_8.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_9.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_9.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_9.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_9.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_B008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B006_B006_B008.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-argument-default_B006_B008.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B039_B039.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-contextvar-default_B039.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B039_B039.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__mutable-contextvar-default_B039.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B028_B028.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__no-explicit-stacklevel_B028.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B028_B028.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__no-explicit-stacklevel_B028.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_1.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_1.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B912_py313_B912.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_1.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B912_py313_B912.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_1.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_2.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_2.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_3.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_3.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_4.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_4.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_4.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_5.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_5.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_5.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_6.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_6.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_6.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_6.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_7.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_7.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_7.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_7.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_8.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_8.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_8.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_8.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_9.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_9.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_9.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_9.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_B008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_B008.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__mutable-argument-default_B006_B008.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B016_B016.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__raise-literal_B016.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B016_B016.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__raise-literal_B016.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B904_B904.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__raise-without-from-inside-except_B904.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B904_B904.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__raise-without-from-inside-except_B904.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B034_B034.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__re-sub-positional-args_B034.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B034_B034.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__re-sub-positional-args_B034.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B013_B013.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__redundant-tuple-in-exception-handler_B013.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B013_B013.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__redundant-tuple-in-exception-handler_B013.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B901_B901.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__return-in-generator_B901.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B901_B901.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__return-in-generator_B901.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B031_B031.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__reuse-of-groupby-generator_B031.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B031_B031.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__reuse-of-groupby-generator_B031.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B010_B009_B010.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__set-attr-with-constant_B009_B010.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B010_B009_B010.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__set-attr-with-constant_B009_B010.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B026_B026.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__star-arg-unpacking-after-keyword-arg_B026.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B026_B026.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__star-arg-unpacking-after-keyword-arg_B026.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B035_B035.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__static-key-dict-comprehension_B035.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B035_B035.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__static-key-dict-comprehension_B035.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_1.pyi.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__static-key-dict-comprehension_py315_B035_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__preview__B006_B006_1.pyi.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__static-key-dict-comprehension_py315_B035_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B005_B005.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__strip-with-multi-characters_B005.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B005_B005.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__strip-with-multi-characters_B005.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B002_B002.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unary-prefix-increment-decrement_B002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B002_B002.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unary-prefix-increment-decrement_B002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B032_B032.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unintentional-type-annotation_B032.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B032_B032.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unintentional-type-annotation_B032.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B004_B004.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unreliable-callable-check_B004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B004_B004.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unreliable-callable-check_B004.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B007_B007.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unused-loop-control-variable_B007.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B007_B007.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__unused-loop-control-variable_B007.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B015_B015.ipynb.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-comparison_B015.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B015_B015.ipynb.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-comparison_B015.ipynb.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B015_B015.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-comparison_B015.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B015_B015.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-comparison_B015.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B022_B022.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-contextlib-suppress_B022.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B022_B022.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-contextlib-suppress_B022.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B018_B018.ipynb.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-expression_B018.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B018_B018.ipynb.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-expression_B018.ipynb.snap diff --git a/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B018_B018.py.snap b/crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-expression_B018.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__B018_B018.py.snap rename to crates/ruff_linter/src/rules/flake8_bugbear/snapshots/ruff_linter__rules__flake8_bugbear__tests__useless-expression_B018.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/mod.rs b/crates/ruff_linter/src/rules/flake8_builtins/mod.rs index 1b3818b2de065c..37fdb3ee4bbf32 100644 --- a/crates/ruff_linter/src/rules/flake8_builtins/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_builtins/mod.rs @@ -48,7 +48,7 @@ mod tests { #[test_case(Rule::StdlibModuleShadowing, Path::new("A005/modules/package/xml.py"))] #[test_case(Rule::BuiltinLambdaArgumentShadowing, Path::new("A006.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_builtins").join(path).as_path(), &LinterSettings { @@ -90,11 +90,7 @@ mod tests { false )] fn non_strict_checking(rule_code: Rule, path: &Path, strict: bool) -> Result<()> { - let snapshot = format!( - "{}_{}_{strict}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("{}_{}_{strict}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_builtins").join(path).as_path(), &LinterSettings { @@ -115,7 +111,7 @@ mod tests { Path::new("A005/modules/utils/logging.py") )] fn non_strict_checking_src(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}_src", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}_src", rule_code.name(), path.to_string_lossy()); let src = Path::new("fixtures/flake8_builtins"); let diagnostics = test_path( Path::new("flake8_builtins").join(path).as_path(), @@ -139,7 +135,7 @@ mod tests { Path::new("A005/modules/utils/logging.py") )] fn non_strict_checking_root(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}_root", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}_root", rule_code.name(), path.to_string_lossy()); let src = Path::new("fixtures/flake8_builtins"); let diagnostics = test_path( Path::new("flake8_builtins").join(path).as_path(), @@ -164,7 +160,7 @@ mod tests { fn builtins_ignorelist(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!( "{}_{}_builtins_ignorelist", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy() ); @@ -207,7 +203,7 @@ mod tests { fn builtins_allowed_modules(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!( "{}_{}_builtins_allowed_modules", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy() ); @@ -229,7 +225,7 @@ mod tests { #[test_case(Rule::BuiltinImportShadowing, Path::new("A004.py"))] fn rules_py312(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}_py38", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}_py38", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_builtins").join(path).as_path(), &LinterSettings::for_rule(rule_code).with_target_version(PythonVersion::PY38), diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A002_A002.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-argument-shadowing_A002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A002_A002.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-argument-shadowing_A002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A002_A002.py_builtins_ignorelist.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-argument-shadowing_A002.py_builtins_ignorelist.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A002_A002.py_builtins_ignorelist.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-argument-shadowing_A002.py_builtins_ignorelist.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A003_A003.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-attribute-shadowing_A003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A003_A003.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-attribute-shadowing_A003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A003_A003.py_builtins_ignorelist.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-attribute-shadowing_A003.py_builtins_ignorelist.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A003_A003.py_builtins_ignorelist.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-attribute-shadowing_A003.py_builtins_ignorelist.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A004_A004.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A004_A004.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A004_A004.py_builtins_ignorelist.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py_builtins_ignorelist.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A004_A004.py_builtins_ignorelist.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py_builtins_ignorelist.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A004_A004.py_py38.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py_py38.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A004_A004.py_py38.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-import-shadowing_A004.py_py38.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A006_A006.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-lambda-argument-shadowing_A006.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A006_A006.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-lambda-argument-shadowing_A006.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A006_A006.py_builtins_ignorelist.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-lambda-argument-shadowing_A006.py_builtins_ignorelist.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A006_A006.py_builtins_ignorelist.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-lambda-argument-shadowing_A006.py_builtins_ignorelist.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A001_A001.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-variable-shadowing_A001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A001_A001.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-variable-shadowing_A001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A001_A001.py_builtins_ignorelist.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-variable-shadowing_A001.py_builtins_ignorelist.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A001_A001.py_builtins_ignorelist.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__builtin-variable-shadowing_A001.py_builtins_ignorelist.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules___abc____init__.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules___abc____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules___abc____init__.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules___abc____init__.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules___abc____init__.py_builtins_allowed_modules.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules___abc____init__.py_builtins_allowed_modules.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules___abc____init__.py_builtins_allowed_modules.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules___abc____init__.py_builtins_allowed_modules.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__logging____init__.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__logging____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__logging____init__.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__logging____init__.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__logging____init__.py_builtins_allowed_modules.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__logging____init__.py_builtins_allowed_modules.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__logging____init__.py_builtins_allowed_modules.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__logging____init__.py_builtins_allowed_modules.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__non_builtin____init__.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__non_builtin____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__non_builtin____init__.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__non_builtin____init__.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__non_builtin____init__.py_builtins_allowed_modules.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__non_builtin____init__.py_builtins_allowed_modules.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__non_builtin____init__.py_builtins_allowed_modules.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__non_builtin____init__.py_builtins_allowed_modules.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__bisect.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__bisect.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__bisect.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__bisect.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__bisect.py_builtins_allowed_modules.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__bisect.py_builtins_allowed_modules.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__bisect.py_builtins_allowed_modules.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__bisect.py_builtins_allowed_modules.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__collections.pyi.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__collections.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__collections.pyi.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__collections.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__xml.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__xml.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__xml.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__xml.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__xml.py_builtins_allowed_modules.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__xml.py_builtins_allowed_modules.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__package__xml.py_builtins_allowed_modules.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__package__xml.py_builtins_allowed_modules.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__string____init__.py.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__string____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__string____init__.py.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__string____init__.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__string____init__.py_builtins_allowed_modules.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__string____init__.py_builtins_allowed_modules.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__string____init__.py_builtins_allowed_modules.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__string____init__.py_builtins_allowed_modules.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_false.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_false.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_false.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_false.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_root.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_root.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_root.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_root.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_src.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_src.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_src.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_src.snap diff --git a/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_true.snap b/crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_true.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__A005_A005__modules__utils__logging.py_true.snap rename to crates/ruff_linter/src/rules/flake8_builtins/snapshots/ruff_linter__rules__flake8_builtins__tests__stdlib-module-shadowing_A005__modules__utils__logging.py_true.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/mod.rs b/crates/ruff_linter/src/rules/flake8_comprehensions/mod.rs index c7d99586b8f637..50c114350f9e18 100644 --- a/crates/ruff_linter/src/rules/flake8_comprehensions/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_comprehensions/mod.rs @@ -42,7 +42,7 @@ mod tests { #[test_case(Rule::UnnecessaryMap, Path::new("C417_1.py"))] #[test_case(Rule::UnnecessarySubscriptReversal, Path::new("C415.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_comprehensions").join(path).as_path(), &LinterSettings::for_rule(rule_code), @@ -59,7 +59,7 @@ mod tests { #[test_case(Rule::UnnecessaryLiteralWithinTupleCall, Path::new("C409_py315.py"))] #[test_case(Rule::UnnecessaryComprehensionInCall, Path::new("C419_py315.py"))] fn rules_py315(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_comprehensions").join(path).as_path(), &LinterSettings::for_rule(rule_code).with_target_version(PythonVersion::PY315), @@ -70,11 +70,7 @@ mod tests { #[test_case(Rule::UnnecessaryComprehensionInCall, Path::new("C419_1.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_comprehensions").join(path).as_path(), &LinterSettings::for_rule(rule_code).with_preview_mode(), @@ -87,7 +83,7 @@ mod tests { fn allow_dict_calls_with_keyword_arguments(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!( "{}_{}_allow_dict_calls_with_keyword_arguments", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy() ); let diagnostics = test_path( diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__preview__C419_C419_1.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__preview__unnecessary-comprehension-in-call_C419_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__preview__C419_C419_1.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__preview__unnecessary-comprehension-in-call_C419_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C413_C413.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-call-around-sorted_C413.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C413_C413.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-call-around-sorted_C413.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C408_C408.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-collection-call_C408.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C408_C408.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-collection-call_C408.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C408_C408.py_allow_dict_calls_with_keyword_arguments.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-collection-call_C408.py_allow_dict_calls_with_keyword_arguments.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C408_C408.py_allow_dict_calls_with_keyword_arguments.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-collection-call_C408.py_allow_dict_calls_with_keyword_arguments.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C419_C419.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C419_C419.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C409_C409_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C409_C409_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C419_C419_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C419_C419_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension-in-call_C419_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C416_C416.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension_C416.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C416_C416.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-comprehension_C416.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420_1.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420_1.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420_2.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420_2.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C419_C419_2.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C419_C419_2.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-dict-comprehension-for-iterable_C420_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C414_C414.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-double-cast-or-process_C414.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C414_C414.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-double-cast-or-process_C414.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C402_C402.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-dict_C402.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C402_C402.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-dict_C402.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C400_C400.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-list_C400.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C400_C400.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-list_C400.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C400_C400_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-list_C400_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C400_C400_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-list_C400_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C401_C401.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-set_C401.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C401_C401.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-set_C401.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C401_C401_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-set_C401_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C401_C401_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-generator-set_C401_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C411_C411.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-call_C411.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C411_C411.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-call_C411.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C411_C411_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-call_C411_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C411_C411_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-call_C411_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C404_C404.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-dict_C404.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C404_C404.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-dict_C404.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C403_C403.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-set_C403.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C403_C403.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-set_C403.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C403_C403_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-set_C403_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C403_C403_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-list-comprehension-set_C403_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C406_C406.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-dict_C406.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C406_C406.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-dict_C406.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C405_C405.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-set_C405.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C405_C405.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-set_C405.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C418_C418.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-dict-call_C418.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C418_C418.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-dict-call_C418.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C418_C418_py315.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-dict-call_C418_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C418_C418_py315.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-dict-call_C418_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C410_C410.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-list-call_C410.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C410_C410.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-list-call_C410.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C409_C409.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-tuple-call_C409.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C409_C409.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-tuple-call_C409.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420_3.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-tuple-call_C409_py315.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C420_C420_3.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-literal-within-tuple-call_C409_py315.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C417_C417.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-map_C417.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C417_C417.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-map_C417.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C417_C417_1.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-map_C417_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C417_C417_1.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-map_C417_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C415_C415.py.snap b/crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-subscript-reversal_C415.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__C415_C415.py.snap rename to crates/ruff_linter/src/rules/flake8_comprehensions/snapshots/ruff_linter__rules__flake8_comprehensions__tests__unnecessary-subscript-reversal_C415.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/mod.rs b/crates/ruff_linter/src/rules/flake8_datetimez/mod.rs index 34599703fa1c5b..9dbb7955d81c54 100644 --- a/crates/ruff_linter/src/rules/flake8_datetimez/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_datetimez/mod.rs @@ -24,7 +24,7 @@ mod tests { #[test_case(Rule::CallDateFromtimestamp, Path::new("DTZ012.py"))] #[test_case(Rule::DatetimeMinMax, Path::new("DTZ901.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_datetimez").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ012_DTZ012.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-date-fromtimestamp_DTZ012.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ012_DTZ012.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-date-fromtimestamp_DTZ012.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ011_DTZ011.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-date-today_DTZ011.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ011_DTZ011.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-date-today_DTZ011.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ006_DTZ006.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-fromtimestamp_DTZ006.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ006_DTZ006.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-fromtimestamp_DTZ006.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ005_DTZ005.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-now-without-tzinfo_DTZ005.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ005_DTZ005.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-now-without-tzinfo_DTZ005.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ007_DTZ007.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-strptime-without-zone_DTZ007.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ007_DTZ007.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-strptime-without-zone_DTZ007.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ002_DTZ002.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-today_DTZ002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ002_DTZ002.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-today_DTZ002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ004_DTZ004.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-utcfromtimestamp_DTZ004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ004_DTZ004.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-utcfromtimestamp_DTZ004.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ003_DTZ003.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-utcnow_DTZ003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ003_DTZ003.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-utcnow_DTZ003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ001_DTZ001.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-without-tzinfo_DTZ001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ001_DTZ001.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__call-datetime-without-tzinfo_DTZ001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ901_DTZ901.py.snap b/crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__datetime-min-max_DTZ901.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__DTZ901_DTZ901.py.snap rename to crates/ruff_linter/src/rules/flake8_datetimez/snapshots/ruff_linter__rules__flake8_datetimez__tests__datetime-min-max_DTZ901.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_debugger/mod.rs b/crates/ruff_linter/src/rules/flake8_debugger/mod.rs index 56e0dcec7f2998..e04d641b58c92b 100644 --- a/crates/ruff_linter/src/rules/flake8_debugger/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_debugger/mod.rs @@ -15,7 +15,7 @@ mod tests { #[test_case(Rule::Debugger, Path::new("T100.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_debugger").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_debugger/snapshots/ruff_linter__rules__flake8_debugger__tests__T100_T100.py.snap b/crates/ruff_linter/src/rules/flake8_debugger/snapshots/ruff_linter__rules__flake8_debugger__tests__debugger_T100.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_debugger/snapshots/ruff_linter__rules__flake8_debugger__tests__T100_T100.py.snap rename to crates/ruff_linter/src/rules/flake8_debugger/snapshots/ruff_linter__rules__flake8_debugger__tests__debugger_T100.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/mod.rs b/crates/ruff_linter/src/rules/flake8_django/mod.rs index 8be904a8e0981e..00ab4f7d7b5462 100644 --- a/crates/ruff_linter/src/rules/flake8_django/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_django/mod.rs @@ -21,7 +21,7 @@ mod tests { #[test_case(Rule::DjangoUnorderedBodyContentInModel, Path::new("DJ012.py"))] #[test_case(Rule::DjangoNonLeadingReceiverDecorator, Path::new("DJ013.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_django").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ007_DJ007.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-all-with-model-form_DJ007.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ007_DJ007.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-all-with-model-form_DJ007.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ006_DJ006.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-exclude-with-model-form_DJ006.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ006_DJ006.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-exclude-with-model-form_DJ006.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ003_DJ003.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-locals-in-render-function_DJ003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ003_DJ003.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-locals-in-render-function_DJ003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ008_DJ008.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-model-without-dunder-str_DJ008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ008_DJ008.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-model-without-dunder-str_DJ008.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ013_DJ013.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-non-leading-receiver-decorator_DJ013.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ013_DJ013.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-non-leading-receiver-decorator_DJ013.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ001_DJ001.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-nullable-model-string-field_DJ001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ001_DJ001.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-nullable-model-string-field_DJ001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ012_DJ012.py.snap b/crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-unordered-body-content-in-model_DJ012.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__DJ012_DJ012.py.snap rename to crates/ruff_linter/src/rules/flake8_django/snapshots/ruff_linter__rules__flake8_django__tests__django-unordered-body-content-in-model_DJ012.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/mod.rs b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/mod.rs index 086ba8ce4c6778..b2bf095eb8b565 100644 --- a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/mod.rs @@ -37,7 +37,7 @@ mod tests { Path::new("ISC004.py") )] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_implicit_str_concat").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -50,11 +50,7 @@ mod tests { #[test_case(Rule::MultiLineImplicitStringConcatenation, Path::new("ISC.py"))] #[test_case(Rule::ExplicitStringConcatenation, Path::new("ISC.py"))] fn multiline(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "multiline_{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("multiline_{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_implicit_str_concat").join(path).as_path(), &settings::LinterSettings { diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC003_ISC.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__explicit-string-concatenation_ISC.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC003_ISC.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__explicit-string-concatenation_ISC.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC004_ISC004.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__implicit-string-concatenation-in-collection-literal_ISC004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC004_ISC004.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__implicit-string-concatenation-in-collection-literal_ISC004.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC_syntax_error.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC_syntax_error.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC_syntax_error_2.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC_syntax_error_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC002_ISC_syntax_error_2.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multi-line-implicit-string-concatenation_ISC_syntax_error_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC003_ISC.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_explicit-string-concatenation_ISC.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC003_ISC.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_explicit-string-concatenation_ISC.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC002_ISC.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_multi-line-implicit-string-concatenation_ISC.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC002_ISC.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_multi-line-implicit-string-concatenation_ISC.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_single-line-implicit-string-concatenation_ISC.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_single-line-implicit-string-concatenation_ISC.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC001_ISC.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__multiline_ISC001_ISC.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error_2.py.snap b/crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC_syntax_error_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error_2.py.snap rename to crates/ruff_linter/src/rules/flake8_implicit_str_concat/snapshots/ruff_linter__rules__flake8_implicit_str_concat__tests__single-line-implicit-string-concatenation_ISC_syntax_error_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/mod.rs b/crates/ruff_linter/src/rules/flake8_logging/mod.rs index 7c736814b6b0dd..1e4363b436ce82 100644 --- a/crates/ruff_linter/src/rules/flake8_logging/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_logging/mod.rs @@ -24,7 +24,7 @@ mod tests { #[test_case(Rule::ExcInfoOutsideExceptHandler, Path::new("LOG014_1.py"))] #[test_case(Rule::RootLoggerCall, Path::new("LOG015.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_logging").join(path).as_path(), &LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG001_LOG001.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__direct-logger-instantiation_LOG001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG001_LOG001.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__direct-logger-instantiation_LOG001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG014_LOG014_0.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__exc-info-outside-except-handler_LOG014_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG014_LOG014_0.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__exc-info-outside-except-handler_LOG014_0.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG014_LOG014_1.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__exc-info-outside-except-handler_LOG014_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG014_LOG014_1.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__exc-info-outside-except-handler_LOG014_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG007_LOG007.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__exception-without-exc-info_LOG007.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG007_LOG007.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__exception-without-exc-info_LOG007.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG002_LOG002.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__invalid-get-logger-argument_LOG002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG002_LOG002.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__invalid-get-logger-argument_LOG002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG004_LOG004_0.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__log-exception-outside-except-handler_LOG004_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG004_LOG004_0.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__log-exception-outside-except-handler_LOG004_0.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG004_LOG004_1.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__log-exception-outside-except-handler_LOG004_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG004_LOG004_1.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__log-exception-outside-except-handler_LOG004_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG015_LOG015.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__root-logger-call_LOG015.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG015_LOG015.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__root-logger-call_LOG015.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG009_LOG009.py.snap b/crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__undocumented-warn_LOG009.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__LOG009_LOG009.py.snap rename to crates/ruff_linter/src/rules/flake8_logging/snapshots/ruff_linter__rules__flake8_logging__tests__undocumented-warn_LOG009.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging_format/mod.rs b/crates/ruff_linter/src/rules/flake8_logging_format/mod.rs index 77c62b4861a3c6..95ac6187872d93 100644 --- a/crates/ruff_linter/src/rules/flake8_logging_format/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_logging_format/mod.rs @@ -55,11 +55,7 @@ mod tests { #[test_case(Rule::LoggingFString, Path::new("G004_arg_order.py"))] #[test_case(Rule::LoggingFString, Path::new("G004_implicit_concat.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_logging_format").join(path).as_path(), &settings::LinterSettings { diff --git a/crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004.py.snap b/crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004.py.snap rename to crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004_arg_order.py.snap b/crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004_arg_order.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004_arg_order.py.snap rename to crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004_arg_order.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004_implicit_concat.py.snap b/crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004_implicit_concat.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__G004_G004_implicit_concat.py.snap rename to crates/ruff_linter/src/rules/flake8_logging_format/snapshots/ruff_linter__rules__flake8_logging_format__tests__preview__logging-f-string_G004_implicit_concat.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/mod.rs b/crates/ruff_linter/src/rules/flake8_pie/mod.rs index ec1697ba2f6240..bd4cb93e3e2a4c 100644 --- a/crates/ruff_linter/src/rules/flake8_pie/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_pie/mod.rs @@ -22,7 +22,7 @@ mod tests { #[test_case(Rule::NonUniqueEnums, Path::new("PIE796.py"))] #[test_case(Rule::NonUniqueEnums, Path::new("PIE796.pyi"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_pie").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE794_PIE794.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__duplicate-class-field-definition_PIE794.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE794_PIE794.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__duplicate-class-field-definition_PIE794.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE810_PIE810.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__multiple-starts-ends-with_PIE810.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE810_PIE810.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__multiple-starts-ends-with_PIE810.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE796_PIE796.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__non-unique-enums_PIE796.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE796_PIE796.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__non-unique-enums_PIE796.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE796_PIE796.pyi.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__non-unique-enums_PIE796.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE796_PIE796.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__non-unique-enums_PIE796.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE807_PIE807.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__reimplemented-container-builtin_PIE807.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE807_PIE807.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__reimplemented-container-builtin_PIE807.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE804_PIE804.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-dict-kwargs_PIE804.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE804_PIE804.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-dict-kwargs_PIE804.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE790_PIE790.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-placeholder_PIE790.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE790_PIE790.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-placeholder_PIE790.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE808_PIE808.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-range-start_PIE808.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE808_PIE808.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-range-start_PIE808.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE800_PIE800.py.snap b/crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-spread_PIE800.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__PIE800_PIE800.py.snap rename to crates/ruff_linter/src/rules/flake8_pie/snapshots/ruff_linter__rules__flake8_pie__tests__unnecessary-spread_PIE800.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_print/mod.rs b/crates/ruff_linter/src/rules/flake8_print/mod.rs index 2469a484a951e0..eba0474c66b9cc 100644 --- a/crates/ruff_linter/src/rules/flake8_print/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_print/mod.rs @@ -15,7 +15,7 @@ mod tests { #[test_case(Rule::Print, Path::new("T201.py"))] #[test_case(Rule::PPrint, Path::new("T203.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_print").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__T203_T203.py.snap b/crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__p-print_T203.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__T203_T203.py.snap rename to crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__p-print_T203.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__T201_T201.py.snap b/crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__print_T201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__T201_T201.py.snap rename to crates/ruff_linter/src/rules/flake8_print/snapshots/ruff_linter__rules__flake8_print__tests__print_T201.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/mod.rs b/crates/ruff_linter/src/rules/flake8_pyi/mod.rs index d5e2c235c1ed80..96bf06638f4825 100644 --- a/crates/ruff_linter/src/rules/flake8_pyi/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_pyi/mod.rs @@ -131,7 +131,7 @@ mod tests { #[test_case(Rule::RedundantNoneLiteral, Path::new("PYI061.py"))] #[test_case(Rule::RedundantNoneLiteral, Path::new("PYI061.pyi"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_pyi").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -147,11 +147,7 @@ mod tests { #[test_case(Rule::RedundantNumericUnion, Path::new("PYI041_4.py"))] #[test_case(Rule::LegacyTypeComment, Path::new("PYI033.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview_{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview_{}_{}", rule_code.name(), path.to_string_lossy()); assert_diagnostics_diff!( snapshot, Path::new("flake8_pyi").join(path).as_path(), @@ -165,7 +161,7 @@ mod tests { #[test_case(Rule::CustomTypeVarForSelf, Path::new("PYI019_0.pyi"))] #[test_case(Rule::CustomTypeVarForSelf, Path::new("PYI019_1.pyi"))] fn custom_classmethod_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_pyi").join(path).as_path(), &settings::LinterSettings { @@ -185,7 +181,7 @@ mod tests { #[test_case(Rule::RedundantNoneLiteral, Path::new("PYI061.py"))] #[test_case(Rule::RedundantNoneLiteral, Path::new("PYI061.pyi"))] fn py38(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("py38_{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("py38_{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_pyi").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code).with_target_version(PythonVersion::PY38), diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI032_PYI032.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__any-eq-ne-annotation_PYI032.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI032_PYI032.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__any-eq-ne-annotation_PYI032.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI032_PYI032.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__any-eq-ne-annotation_PYI032.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI032_PYI032.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__any-eq-ne-annotation_PYI032.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI001_PYI001.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__argument-default-in-stub_PYI014.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI001_PYI001.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__argument-default-in-stub_PYI014.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI014_PYI014.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__argument-default-in-stub_PYI014.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI014_PYI014.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__argument-default-in-stub_PYI014.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI002_PYI002.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__assignment-default-in-stub_PYI015.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI002_PYI002.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__assignment-default-in-stub_PYI015.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI015_PYI015.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__assignment-default-in-stub_PYI015.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI015_PYI015.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__assignment-default-in-stub_PYI015.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI036_PYI036.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-exit-annotation_PYI036.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI036_PYI036.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-exit-annotation_PYI036.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI036_PYI036.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-exit-annotation_PYI036.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI036_PYI036.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-exit-annotation_PYI036.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI006_PYI006.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-comparison_PYI006.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI006_PYI006.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-comparison_PYI006.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI006_PYI006.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-comparison_PYI006.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI006_PYI006.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-comparison_PYI006.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI003_PYI003.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-order_PYI066.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI003_PYI003.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-order_PYI066.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI066_PYI066.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-order_PYI066.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI066_PYI066.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__bad-version-info-order_PYI066.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI057_PYI057.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__byte-string-usage_PYI057.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI057_PYI057.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__byte-string-usage_PYI057.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI057_PYI057.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__byte-string-usage_PYI057.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI057_PYI057.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__byte-string-usage_PYI057.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI024_PYI024.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__collections-named-tuple_PYI024.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI024_PYI024.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__collections-named-tuple_PYI024.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI024_PYI024.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__collections-named-tuple_PYI024.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI024_PYI024.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__collections-named-tuple_PYI024.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI004_PYI004.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-assignment-in-stub_PYI017.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI004_PYI004.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-assignment-in-stub_PYI017.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI017_PYI017.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-assignment-in-stub_PYI017.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI017_PYI017.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-assignment-in-stub_PYI017.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI005_PYI005.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-if-statement-in-stub_PYI002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI005_PYI005.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-if-statement-in-stub_PYI002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI002_PYI002.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-if-statement-in-stub_PYI002.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI002_PYI002.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__complex-if-statement-in-stub_PYI002.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_0.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_0.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_0.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_0.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_0.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_0.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_0.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_1.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_1.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI019_PYI019_1.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__custom-type-var-for-self_PYI019_1.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI007_PYI007.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__docstring-in-stub_PYI021.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI007_PYI007.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__docstring-in-stub_PYI021.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI021_PYI021.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__docstring-in-stub_PYI021.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI021_PYI021.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__docstring-in-stub_PYI021.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI062_PYI062.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-literal-member_PYI062.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI062_PYI062.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-literal-member_PYI062.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI062_PYI062.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-literal-member_PYI062.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI062_PYI062.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-literal-member_PYI062.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI016_PYI016.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-union-member_PYI016.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI016_PYI016.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-union-member_PYI016.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI016_PYI016.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-union-member_PYI016.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI016_PYI016.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__duplicate-union-member_PYI016.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI013_PYI013.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__ellipsis-in-non-empty-class-body_PYI013.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI013_PYI013.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__ellipsis-in-non-empty-class-body_PYI013.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI013_PYI013.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__ellipsis-in-non-empty-class-body_PYI013.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI013_PYI013.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__ellipsis-in-non-empty-class-body_PYI013.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI008_PYI008.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__future-annotations-in-stub_PYI044.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI008_PYI008.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__future-annotations-in-stub_PYI044.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__future-annotations-in-stub_PYI044.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__future-annotations-in-stub_PYI044.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI058_PYI058.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generator-return-from-iter-method_PYI058.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI058_PYI058.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generator-return-from-iter-method_PYI058.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI058_PYI058.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generator-return-from-iter-method_PYI058.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI058_PYI058.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generator-return-from-iter-method_PYI058.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI059_PYI059.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generic-not-last-base-class_PYI059.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI059_PYI059.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generic-not-last-base-class_PYI059.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI059_PYI059.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generic-not-last-base-class_PYI059.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI059_PYI059.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__generic-not-last-base-class_PYI059.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI045_PYI045.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__iter-method-return-iterable_PYI045.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI045_PYI045.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__iter-method-return-iterable_PYI045.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI045_PYI045.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__iter-method-return-iterable_PYI045.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI045_PYI045.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__iter-method-return-iterable_PYI045.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI009_PYI009.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__legacy-type-comment_PYI033.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI009_PYI009.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__legacy-type-comment_PYI033.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI033_PYI033.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__legacy-type-comment_PYI033.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI033_PYI033.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__legacy-type-comment_PYI033.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI050_PYI050.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__no-return-argument-annotation-in-stub_PYI050.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI050_PYI050.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__no-return-argument-annotation-in-stub_PYI050.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI050_PYI050.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__no-return-argument-annotation-in-stub_PYI050.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI050_PYI050.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__no-return-argument-annotation-in-stub_PYI050.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI010_PYI010.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-empty-stub-body_PYI010.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI010_PYI010.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-empty-stub-body_PYI010.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI010_PYI010.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-empty-stub-body_PYI010.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI010_PYI010.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-empty-stub-body_PYI010.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI034_PYI034.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-self-return-type_PYI034.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI034_PYI034.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-self-return-type_PYI034.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI034_PYI034.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-self-return-type_PYI034.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI034_PYI034.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__non-self-return-type_PYI034.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI011_PYI011.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__numeric-literal-too-long_PYI054.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI011_PYI011.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__numeric-literal-too-long_PYI054.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI054_PYI054.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__numeric-literal-too-long_PYI054.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI054_PYI054.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__numeric-literal-too-long_PYI054.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI012_PYI012.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-in-class-body_PYI012.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI012_PYI012.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-in-class-body_PYI012.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI012_PYI012.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-in-class-body_PYI012.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI012_PYI012.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-in-class-body_PYI012.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI014_PYI014.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-statement-stub-body_PYI009.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI014_PYI014.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-statement-stub-body_PYI009.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI009_PYI009.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-statement-stub-body_PYI009.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI009_PYI009.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pass-statement-stub-body_PYI009.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI015_PYI015.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__patch-version-comparison_PYI004.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI015_PYI015.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__patch-version-comparison_PYI004.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI004_PYI004.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__patch-version-comparison_PYI004.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI004_PYI004.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__patch-version-comparison_PYI004.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI063_PYI063.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pep484-style-positional-only-parameter_PYI063.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI063_PYI063.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pep484-style-positional-only-parameter_PYI063.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI063_PYI063.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pep484-style-positional-only-parameter_PYI063.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI063_PYI063.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__pep484-style-positional-only-parameter_PYI063.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI033_PYI033.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_legacy-type-comment_PYI033.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI033_PYI033.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_legacy-type-comment_PYI033.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_1.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_1.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_1.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_1.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_1.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_1.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_2.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_2.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_3.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_3.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_4.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_PYI041_PYI041_4.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__preview_redundant-numeric-union_PYI041_4.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI061_PYI061.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_redundant-none-literal_PYI061.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI061_PYI061.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_redundant-none-literal_PYI061.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI061_PYI061.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_redundant-none-literal_PYI061.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI061_PYI061.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_redundant-none-literal_PYI061.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI017_PYI017.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_type-alias-without-annotation_PYI026.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI017_PYI017.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_type-alias-without-annotation_PYI026.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI026_PYI026.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_type-alias-without-annotation_PYI026.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI026_PYI026.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_type-alias-without-annotation_PYI026.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI020_PYI020.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__quoted-annotation-in-stub_PYI020.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI020_PYI020.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__quoted-annotation-in-stub_PYI020.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI020_PYI020.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__quoted-annotation-in-stub_PYI020.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI020_PYI020.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__quoted-annotation-in-stub_PYI020.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI064_PYI064.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-final-literal_PYI064.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI064_PYI064.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-final-literal_PYI064.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI064_PYI064.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-final-literal_PYI064.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI064_PYI064.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-final-literal_PYI064.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI051_PYI051.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-literal-union_PYI051.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI051_PYI051.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-literal-union_PYI051.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI051_PYI051.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-literal-union_PYI051.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI051_PYI051.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-literal-union_PYI051.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI061_PYI061.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-none-literal_PYI061.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI061_PYI061.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-none-literal_PYI061.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI061_PYI061.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-none-literal_PYI061.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI061_PYI061.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-none-literal_PYI061.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_1.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_1.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_1.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_1.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_1.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_1.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_2.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_2.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI021_PYI021.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI021_PYI021.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI026_PYI026.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI026_PYI026.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__redundant-numeric-union_PYI041_4.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI042_PYI042.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__snake-case-type-alias_PYI042.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI042_PYI042.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__snake-case-type-alias_PYI042.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI042_PYI042.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__snake-case-type-alias_PYI042.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI042_PYI042.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__snake-case-type-alias_PYI042.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI029_PYI029.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__str-or-repr-defined-in-stub_PYI029.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI029_PYI029.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__str-or-repr-defined-in-stub_PYI029.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI029_PYI029.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__str-or-repr-defined-in-stub_PYI029.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI029_PYI029.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__str-or-repr-defined-in-stub_PYI029.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI033_PYI033.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__string-or-bytes-too-long_PYI053.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI033_PYI033.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__string-or-bytes-too-long_PYI053.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI053_PYI053.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__string-or-bytes-too-long_PYI053.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI053_PYI053.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__string-or-bytes-too-long_PYI053.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI035_PYI035.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__stub-body-multiple-statements_PYI048.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI035_PYI035.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__stub-body-multiple-statements_PYI048.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI048_PYI048.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__stub-body-multiple-statements_PYI048.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI048_PYI048.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__stub-body-multiple-statements_PYI048.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI043_PYI043.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__t-suffixed-type-alias_PYI043.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI043_PYI043.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__t-suffixed-type-alias_PYI043.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI043_PYI043.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__t-suffixed-type-alias_PYI043.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI043_PYI043.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__t-suffixed-type-alias_PYI043.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_3.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__type-alias-without-annotation_PYI026.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_3.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__type-alias-without-annotation_PYI026.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI026_PYI026.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__type-alias-without-annotation_PYI026.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI026_PYI026.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__type-alias-without-annotation_PYI026.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_4.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__typed-argument-default-in-stub_PYI011.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI041_PYI041_4.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__typed-argument-default-in-stub_PYI011.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI011_PYI011.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__typed-argument-default-in-stub_PYI011.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI011_PYI011.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__typed-argument-default-in-stub_PYI011.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_1.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_1.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_1.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_1.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_1.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_1.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_2.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_2.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_2.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_2.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_2.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_2.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_3.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_3.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_3.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_3.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI025_PYI025_3.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unaliased-collections-abc-set-import_PYI025_3.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unannotated-assignment-in-stub_PYI052.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI044_PYI044.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unannotated-assignment-in-stub_PYI052.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI052_PYI052.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unannotated-assignment-in-stub_PYI052.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI052_PYI052.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unannotated-assignment-in-stub_PYI052.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI048_PYI048.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unassigned-special-variable-in-stub_PYI035.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI048_PYI048.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unassigned-special-variable-in-stub_PYI035.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI035_PYI035.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unassigned-special-variable-in-stub_PYI035.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI035_PYI035.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unassigned-special-variable-in-stub_PYI035.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI030_PYI030.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-literal-union_PYI030.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI030_PYI030.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-literal-union_PYI030.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI030_PYI030.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-literal-union_PYI030.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI030_PYI030.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-literal-union_PYI030.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI055_PYI055.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-type-union_PYI055.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI055_PYI055.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-type-union_PYI055.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI055_PYI055.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-type-union_PYI055.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI055_PYI055.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unnecessary-type-union_PYI055.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI052_PYI052.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unprefixed-type-param_PYI001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI052_PYI052.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unprefixed-type-param_PYI001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI001_PYI001.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unprefixed-type-param_PYI001.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI001_PYI001.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unprefixed-type-param_PYI001.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI053_PYI053.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-check_PYI007.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI053_PYI053.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-check_PYI007.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI007_PYI007.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-check_PYI007.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI007_PYI007.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-check_PYI007.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI054_PYI054.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-name_PYI008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI054_PYI054.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-name_PYI008.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI008_PYI008.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-name_PYI008.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI008_PYI008.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-platform-name_PYI008.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI066_PYI066.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-version-info-check_PYI003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI066_PYI066.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-version-info-check_PYI003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI003_PYI003.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-version-info-check_PYI003.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI003_PYI003.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unrecognized-version-info-check_PYI003.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI056_PYI056.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unsupported-method-call-on-all_PYI056.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI056_PYI056.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unsupported-method-call-on-all_PYI056.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI056_PYI056.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unsupported-method-call-on-all_PYI056.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI056_PYI056.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unsupported-method-call-on-all_PYI056.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI046_PYI046.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-protocol_PYI046.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI046_PYI046.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-protocol_PYI046.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI046_PYI046.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-protocol_PYI046.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI046_PYI046.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-protocol_PYI046.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI047_PYI047.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-alias_PYI047.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI047_PYI047.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-alias_PYI047.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI047_PYI047.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-alias_PYI047.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI047_PYI047.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-alias_PYI047.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI018_PYI018.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-var_PYI018.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI018_PYI018.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-var_PYI018.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI018_PYI018.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-var_PYI018.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI018_PYI018.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-type-var_PYI018.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI049_PYI049.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-typed-dict_PYI049.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI049_PYI049.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-typed-dict_PYI049.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI049_PYI049.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-typed-dict_PYI049.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI049_PYI049.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__unused-private-typed-dict_PYI049.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI026_PYI026.py.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__wrong-tuple-length-version-comparison_PYI005.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__py38_PYI026_PYI026.py.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__wrong-tuple-length-version-comparison_PYI005.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI005_PYI005.pyi.snap b/crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__wrong-tuple-length-version-comparison_PYI005.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__PYI005_PYI005.pyi.snap rename to crates/ruff_linter/src/rules/flake8_pyi/snapshots/ruff_linter__rules__flake8_pyi__tests__wrong-tuple-length-version-comparison_PYI005.pyi.snap diff --git a/crates/ruff_linter/src/rules/flake8_pytest_style/mod.rs b/crates/ruff_linter/src/rules/flake8_pytest_style/mod.rs index e97adff100ab83..e4e3f8f835730b 100644 --- a/crates/ruff_linter/src/rules/flake8_pytest_style/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_pytest_style/mod.rs @@ -381,11 +381,7 @@ mod tests { #[test_case(Rule::PytestExtraneousScopeFunction, Path::new("PT003.py"))] #[test_case(Rule::PytestCompositeAssertion, Path::new("PT018.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); assert_diagnostics_diff!( snapshot, Path::new("flake8_pytest_style").join(path).as_path(), diff --git a/crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__PT018_PT018.py.snap b/crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-composite-assertion_PT018.py.snap similarity index 99% rename from crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__PT018_PT018.py.snap rename to crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-composite-assertion_PT018.py.snap index 1a299ba99a1b22..cc63dc60aef2cd 100644 --- a/crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__PT018_PT018.py.snap +++ b/crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-composite-assertion_PT018.py.snap @@ -1,6 +1,5 @@ --- source: crates/ruff_linter/src/rules/flake8_pytest_style/mod.rs -assertion_line: 389 --- --- Linter settings --- -linter.preview = disabled diff --git a/crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__PT003_PT003.py.snap b/crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-extraneous-scope-function_PT003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__PT003_PT003.py.snap rename to crates/ruff_linter/src/rules/flake8_pytest_style/snapshots/ruff_linter__rules__flake8_pytest_style__tests__preview__pytest-extraneous-scope-function_PT003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/mod.rs b/crates/ruff_linter/src/rules/flake8_return/mod.rs index f8370dd8ccbec2..97a5b049890cee 100644 --- a/crates/ruff_linter/src/rules/flake8_return/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_return/mod.rs @@ -27,7 +27,7 @@ mod tests { #[test_case(Rule::SuperfluousElseContinue, Path::new("RET507.py"))] #[test_case(Rule::SuperfluousElseBreak, Path::new("RET508.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_return").join(path).as_path(), &LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET502_RET502.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__implicit-return-value_RET502.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET502_RET502.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__implicit-return-value_RET502.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET503_RET503.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__implicit-return_RET503.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET503_RET503.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__implicit-return_RET503.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET508_RET508.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-break_RET508.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET508_RET508.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-break_RET508.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET507_RET507.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-continue_RET507.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET507_RET507.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-continue_RET507.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET506_RET506.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-raise_RET506.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET506_RET506.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-raise_RET506.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET505_RET505.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-return_RET505.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET505_RET505.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__superfluous-else-return_RET505.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET504_RET504.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__unnecessary-assign_RET504.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET504_RET504.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__unnecessary-assign_RET504.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET501_RET501.py.snap b/crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__unnecessary-return-none_RET501.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__RET501_RET501.py.snap rename to crates/ruff_linter/src/rules/flake8_return/snapshots/ruff_linter__rules__flake8_return__tests__unnecessary-return-none_RET501.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/mod.rs b/crates/ruff_linter/src/rules/flake8_simplify/mod.rs index 6109a05e50aac2..1e53e4c375654e 100644 --- a/crates/ruff_linter/src/rules/flake8_simplify/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_simplify/mod.rs @@ -50,7 +50,7 @@ mod tests { #[test_case(Rule::DictGetWithNoneDefault, Path::new("SIM910.py"))] #[test_case(Rule::ZipDictKeysAndValues, Path::new("SIM911.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_simplify").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -61,11 +61,7 @@ mod tests { #[test_case(Rule::EnumerateForLoop, Path::new("SIM113.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_simplify").join(path).as_path(), &LinterSettings::for_rule(rule_code).with_preview_mode(), @@ -76,7 +72,7 @@ mod tests { #[test_case(Rule::SuppressibleException, Path::new("SIM105_5.py"))] fn version_specific_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("diff_{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("diff_{}_{}", rule_code.name(), path.to_string_lossy()); assert_diagnostics_diff!( snapshot, Path::new("flake8_simplify").join(path).as_path(), diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM102_SIM102.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__collapsible-if_SIM102.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM102_SIM102.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__collapsible-if_SIM102.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM109_SIM109.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__compare-with-tuple_SIM109.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM109_SIM109.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__compare-with-tuple_SIM109.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM910_SIM910.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__dict-get-with-none-default_SIM910.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM910_SIM910.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__dict-get-with-none-default_SIM910.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__diff_SIM105_SIM105_5.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__diff_suppressible-exception_SIM105_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__diff_SIM105_SIM105_5.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__diff_suppressible-exception_SIM105_5.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM208_SIM208.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__double-negation_SIM208.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM208_SIM208.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__double-negation_SIM208.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM101_SIM101.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__duplicate-isinstance-call_SIM101.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM101_SIM101.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__duplicate-isinstance-call_SIM101.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM113_SIM113.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__enumerate-for-loop_SIM113.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM113_SIM113.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__enumerate-for-loop_SIM113.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM223_SIM223.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-and-false_SIM223.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM223_SIM223.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-and-false_SIM223.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM220_SIM220.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-and-not-expr_SIM220.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM220_SIM220.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-and-not-expr_SIM220.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM221_SIM221.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-or-not-expr_SIM221.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM221_SIM221.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-or-not-expr_SIM221.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM222_SIM222.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-or-true_SIM222.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM222_SIM222.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__expr-or-true_SIM222.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM401_SIM401.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-dict-get_SIM401.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM401_SIM401.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-dict-get_SIM401.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM116_SIM116.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-dict-lookup_SIM116.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM116_SIM116.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-dict-lookup_SIM116.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM108_SIM108.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-if-exp_SIM108.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM108_SIM108.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-else-block-instead-of-if-exp_SIM108.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM211_SIM211.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-expr-with-false-true_SIM211.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM211_SIM211.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-expr-with-false-true_SIM211.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM210_SIM210.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-expr-with-true-false_SIM210.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM210_SIM210.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-expr-with-true-false_SIM210.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM212_SIM212.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-expr-with-twisted-arms_SIM212.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM212_SIM212.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-expr-with-twisted-arms_SIM212.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM114_SIM114.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-with-same-arms_SIM114.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM114_SIM114.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__if-with-same-arms_SIM114.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM118_SIM118.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__in-dict-keys_SIM118.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM118_SIM118.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__in-dict-keys_SIM118.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM117_SIM117.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__multiple-with-statements_SIM117.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM117_SIM117.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__multiple-with-statements_SIM117.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM103_SIM103.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__needless-bool_SIM103.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM103_SIM103.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__needless-bool_SIM103.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM201_SIM201.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__negate-equal-op_SIM201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM201_SIM201.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__negate-equal-op_SIM201.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM202_SIM202.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__negate-not-equal-op_SIM202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM202_SIM202.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__negate-not-equal-op_SIM202.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM115_SIM115.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__open-file-with-context-handler_SIM115.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM115_SIM115.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__open-file-with-context-handler_SIM115.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__SIM113_SIM113.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__enumerate-for-loop_SIM113.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__SIM113_SIM113.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__enumerate-for-loop_SIM113.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM110_SIM110.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__reimplemented-builtin_SIM110.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM110_SIM110.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__reimplemented-builtin_SIM110.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM110_SIM111.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__reimplemented-builtin_SIM111.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM110_SIM111.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__reimplemented-builtin_SIM111.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM107_SIM107.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__return-in-try-except-finally_SIM107.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM107_SIM107.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__return-in-try-except-finally_SIM107.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM905_SIM905.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__split-static-string_SIM905.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM905_SIM905.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__split-static-string_SIM905.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_0.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_0.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_0.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_1.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_1.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_2.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_2.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_3.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_3.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_3.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_4.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM105_SIM105_4.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__suppressible-exception_SIM105_4.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM112_SIM112.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__uncapitalized-environment-variables_SIM112.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM112_SIM112.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__uncapitalized-environment-variables_SIM112.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM300_SIM300.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__yoda-conditions_SIM300.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM300_SIM300.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__yoda-conditions_SIM300.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM911_SIM911.py.snap b/crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__zip-dict-keys-and-values_SIM911.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__SIM911_SIM911.py.snap rename to crates/ruff_linter/src/rules/flake8_simplify/snapshots/ruff_linter__rules__flake8_simplify__tests__zip-dict-keys-and-values_SIM911.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_slots/mod.rs b/crates/ruff_linter/src/rules/flake8_slots/mod.rs index 99bd9daa8b35bc..7f7c25e09b1c14 100644 --- a/crates/ruff_linter/src/rules/flake8_slots/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_slots/mod.rs @@ -17,7 +17,7 @@ mod tests { #[test_case(Rule::NoSlotsInTupleSubclass, Path::new("SLOT001.py"))] #[test_case(Rule::NoSlotsInNamedtupleSubclass, Path::new("SLOT002.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_slots").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__SLOT002_SLOT002.py.snap b/crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__no-slots-in-namedtuple-subclass_SLOT002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__SLOT002_SLOT002.py.snap rename to crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__no-slots-in-namedtuple-subclass_SLOT002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__SLOT000_SLOT000.py.snap b/crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__no-slots-in-str-subclass_SLOT000.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__SLOT000_SLOT000.py.snap rename to crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__no-slots-in-str-subclass_SLOT000.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__SLOT001_SLOT001.py.snap b/crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__no-slots-in-tuple-subclass_SLOT001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__SLOT001_SLOT001.py.snap rename to crates/ruff_linter/src/rules/flake8_slots/snapshots/ruff_linter__rules__flake8_slots__tests__no-slots-in-tuple-subclass_SLOT001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/mod.rs b/crates/ruff_linter/src/rules/flake8_type_checking/mod.rs index 926fd3f32eb414..0e6b2d43b68370 100644 --- a/crates/ruff_linter/src/rules/flake8_type_checking/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_type_checking/mod.rs @@ -79,7 +79,10 @@ mod tests { #[test_case(&[Rule::TypingOnlyFirstPartyImport], Path::new("TC001_future.py"))] #[test_case(&[Rule::TypingOnlyFirstPartyImport], Path::new("TC001_future_present.py"))] fn add_future_import(rules: &[Rule], path: &Path) -> Result<()> { - let name = rules.iter().map(Rule::noqa_code).join("-"); + let name = rules + .iter() + .map(|rule| rule.name().as_str().strip_prefix("typing-only-").unwrap()) + .join("-"); let snapshot = format!("add_future_import__{}_{}", name, path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_type_checking").join(path).as_path(), @@ -102,7 +105,7 @@ mod tests { fn add_future_import_dataclass_kw_only_py313(rule: Rule, path: &Path) -> Result<()> { let snapshot = format!( "add_future_import_kw_only__{}_{}", - rule.noqa_code(), + rule.name(), path.to_string_lossy() ); let diagnostics = test_path( diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001-TC002-TC003_TC001-3_future.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import-third-party-import-standard-library-import_TC001-3_future.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001-TC002-TC003_TC001-3_future.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import-third-party-import-standard-library-import_TC001-3_future.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001_future.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001_future.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001_future.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001_future.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001_future_present.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001_future_present.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC001_TC001_future_present.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__first-party-import_TC001_future_present.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC003_TC003.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__standard-library-import_TC003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC003_TC003.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__standard-library-import_TC003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC002_TC002.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__third-party-import_TC002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__TC002_TC002.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import__third-party-import_TC002.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import_kw_only__TC003_TC003.py.snap b/crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import_kw_only__typing-only-standard-library-import_TC003.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import_kw_only__TC003_TC003.py.snap rename to crates/ruff_linter/src/rules/flake8_type_checking/snapshots/ruff_linter__rules__flake8_type_checking__tests__add_future_import_kw_only__typing-only-standard-library-import_TC003.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_unused_arguments/mod.rs b/crates/ruff_linter/src/rules/flake8_unused_arguments/mod.rs index 2deca6b3f12cf0..2d252e31b96cad 100644 --- a/crates/ruff_linter/src/rules/flake8_unused_arguments/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_unused_arguments/mod.rs @@ -19,7 +19,7 @@ mod tests { #[test_case(Rule::UnusedStaticMethodArgument, Path::new("ARG.py"))] #[test_case(Rule::UnusedLambdaArgument, Path::new("ARG.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_unused_arguments").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG003_ARG.py.snap b/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-class-method-argument_ARG.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG003_ARG.py.snap rename to crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-class-method-argument_ARG.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG001_ARG.py.snap b/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-function-argument_ARG.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG001_ARG.py.snap rename to crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-function-argument_ARG.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG005_ARG.py.snap b/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-lambda-argument_ARG.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG005_ARG.py.snap rename to crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-lambda-argument_ARG.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG002_ARG.py.snap b/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-method-argument_ARG.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG002_ARG.py.snap rename to crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-method-argument_ARG.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG004_ARG.py.snap b/crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-static-method-argument_ARG.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__ARG004_ARG.py.snap rename to crates/ruff_linter/src/rules/flake8_unused_arguments/snapshots/ruff_linter__rules__flake8_unused_arguments__tests__unused-static-method-argument_ARG.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/mod.rs b/crates/ruff_linter/src/rules/flake8_use_pathlib/mod.rs index 6855b66c32b36e..90ce3390ea19cd 100644 --- a/crates/ruff_linter/src/rules/flake8_use_pathlib/mod.rs +++ b/crates/ruff_linter/src/rules/flake8_use_pathlib/mod.rs @@ -73,7 +73,7 @@ mod tests { #[test_case(Rule::InvalidPathlibWithSuffix, Path::new("PTH210_1.py"))] #[test_case(Rule::OsSymlink, Path::new("PTH211.py"))] fn rules_pypath(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_use_pathlib").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -151,11 +151,7 @@ mod tests { #[test_case(Rule::OsPathGetmtime, Path::new("PTH204.py"))] #[test_case(Rule::OsPathGetctime, Path::new("PTH205.py"))] fn preview_flake8_use_pathlib(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_use_pathlib").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code).with_preview_mode(), @@ -166,11 +162,7 @@ mod tests { #[test_case(Rule::InvalidPathlibWithSuffix, Path::new("PTH210_2.py"))] fn pathlib_with_suffix_py314(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "py314__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("py314__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flake8_use_pathlib").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code) diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH123_PTH123.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__builtin-open_PTH123.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH123_PTH123.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__builtin-open_PTH123.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH207_PTH207.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__glob_PTH207.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH207_PTH207.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__glob_PTH207.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH210_PTH210.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__invalid-pathlib-with-suffix_PTH210.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH210_PTH210.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__invalid-pathlib-with-suffix_PTH210.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH210_PTH210_1.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__invalid-pathlib-with-suffix_PTH210_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH210_PTH210_1.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__invalid-pathlib-with-suffix_PTH210_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH208_PTH208.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-listdir_PTH208.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH208_PTH208.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-listdir_PTH208.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH203_PTH203.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getatime_PTH203.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH203_PTH203.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getatime_PTH203.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH205_PTH205.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getctime_PTH205.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH205_PTH205.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getctime_PTH205.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH204_PTH204.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getmtime_PTH204.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH204_PTH204.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getmtime_PTH204.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH202_PTH202.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getsize_PTH202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH202_PTH202.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getsize_PTH202.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH202_PTH202_2.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getsize_PTH202_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH202_PTH202_2.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-path-getsize_PTH202_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH206_PTH206.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-sep-split_PTH206.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH206_PTH206.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-sep-split_PTH206.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH211_PTH211.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-symlink_PTH211.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH211_PTH211.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__os-symlink_PTH211.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH201_PTH201.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__path-constructor-current-directory_PTH201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH201_PTH201.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__path-constructor-current-directory_PTH201.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH123_PTH123.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__builtin-open_PTH123.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH123_PTH123.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__builtin-open_PTH123.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH203_PTH203.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getatime_PTH203.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH203_PTH203.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getatime_PTH203.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH205_PTH205.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getctime_PTH205.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH205_PTH205.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getctime_PTH205.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH204_PTH204.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getmtime_PTH204.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH204_PTH204.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getmtime_PTH204.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH202_PTH202.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getsize_PTH202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH202_PTH202.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getsize_PTH202.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH202_PTH202_2.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getsize_PTH202_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH202_PTH202_2.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__os-path-getsize_PTH202_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH201_PTH201.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__path-constructor-current-directory_PTH201.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__PTH201_PTH201.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__preview__path-constructor-current-directory_PTH201.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH124_py_path_1.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py-path_py_path_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH124_py_path_1.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py-path_py_path_1.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH124_py_path_2.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py-path_py_path_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__PTH124_py_path_2.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py-path_py_path_2.py.snap diff --git a/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py314__PTH210_PTH210_2.py.snap b/crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py314__invalid-pathlib-with-suffix_PTH210_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py314__PTH210_PTH210_2.py.snap rename to crates/ruff_linter/src/rules/flake8_use_pathlib/snapshots/ruff_linter__rules__flake8_use_pathlib__tests__py314__invalid-pathlib-with-suffix_PTH210_2.py.snap diff --git a/crates/ruff_linter/src/rules/flynt/mod.rs b/crates/ruff_linter/src/rules/flynt/mod.rs index 373e6cfc4cb933..9000b1cd94a1dd 100644 --- a/crates/ruff_linter/src/rules/flynt/mod.rs +++ b/crates/ruff_linter/src/rules/flynt/mod.rs @@ -15,7 +15,7 @@ mod tests { #[test_case(Rule::StaticJoinToFString, Path::new("FLY002.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("flynt").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/flynt/snapshots/ruff_linter__rules__flynt__tests__FLY002_FLY002.py.snap b/crates/ruff_linter/src/rules/flynt/snapshots/ruff_linter__rules__flynt__tests__static-join-to-f-string_FLY002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/flynt/snapshots/ruff_linter__rules__flynt__tests__FLY002_FLY002.py.snap rename to crates/ruff_linter/src/rules/flynt/snapshots/ruff_linter__rules__flynt__tests__static-join-to-f-string_FLY002.py.snap diff --git a/crates/ruff_linter/src/rules/pandas_vet/mod.rs b/crates/ruff_linter/src/rules/pandas_vet/mod.rs index 1102d131f5cb34..98818d077034d3 100644 --- a/crates/ruff_linter/src/rules/pandas_vet/mod.rs +++ b/crates/ruff_linter/src/rules/pandas_vet/mod.rs @@ -380,7 +380,7 @@ mod tests { #[test_case(Rule::PandasUseOfInplaceArgument, Path::new("PD002.py"))] #[test_case(Rule::PandasNuniqueConstantSeriesCheck, Path::new("PD101.py"))] fn paths(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pandas_vet").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__PD101_PD101.py.snap b/crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__pandas-nunique-constant-series-check_PD101.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__PD101_PD101.py.snap rename to crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__pandas-nunique-constant-series-check_PD101.py.snap diff --git a/crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__PD012_pandas_use_of_dot_read_table.py.snap b/crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__pandas-use-of-dot-read-table_pandas_use_of_dot_read_table.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__PD012_pandas_use_of_dot_read_table.py.snap rename to crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__pandas-use-of-dot-read-table_pandas_use_of_dot_read_table.py.snap diff --git a/crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__PD002_PD002.py.snap b/crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__pandas-use-of-inplace-argument_PD002.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__PD002_PD002.py.snap rename to crates/ruff_linter/src/rules/pandas_vet/snapshots/ruff_linter__rules__pandas_vet__tests__pandas-use-of-inplace-argument_PD002.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/mod.rs b/crates/ruff_linter/src/rules/pep8_naming/mod.rs index a646946fe995bc..e72838280b88d3 100644 --- a/crates/ruff_linter/src/rules/pep8_naming/mod.rs +++ b/crates/ruff_linter/src/rules/pep8_naming/mod.rs @@ -78,7 +78,7 @@ mod tests { Path::new("N999/module/invalid_name/import.py") )] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pep8_naming").join(path).as_path(), &settings::LinterSettings { @@ -164,7 +164,7 @@ mod tests { #[test_case(Rule::ErrorSuffixOnExceptionName, "N818.py")] #[test_case(Rule::InvalidModuleName, "N999/badAllowed/__init__.py")] fn ignore_names(rule_code: Rule, path: &str) -> Result<()> { - let snapshot = format!("ignore_names_{}_{path}", rule_code.noqa_code()); + let snapshot = format!("ignore_names_{}_{path}", rule_code.name()); let diagnostics = test_path( PathBuf::from_iter(["pep8_naming", "ignore_names", path]).as_path(), &settings::LinterSettings { diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N817_N817.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-acronym_N817.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N817_N817.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-acronym_N817.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N814_N814.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-constant_N814.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N814_N814.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-constant_N814.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N813_N813.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-lowercase_N813.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N813_N813.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__camelcase-imported-as-lowercase_N813.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N811_N811.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__constant-imported-as-non-constant_N811.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N811_N811.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__constant-imported-as-non-constant_N811.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N807_N807.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__dunder-function-name_N807.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N807_N807.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__dunder-function-name_N807.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N818_N818.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__error-suffix-on-exception-name_N818.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N818_N818.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__error-suffix-on-exception-name_N818.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N817_N817.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-acronym_N817.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N817_N817.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-acronym_N817.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N814_N814.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-constant_N814.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N814_N814.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-constant_N814.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N813_N813.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-lowercase_N813.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N813_N813.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_camelcase-imported-as-lowercase_N813.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N811_N811.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_constant-imported-as-non-constant_N811.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N811_N811.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_constant-imported-as-non-constant_N811.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N807_N807.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_dunder-function-name_N807.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N807_N807.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_dunder-function-name_N807.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N818_N818.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_error-suffix-on-exception-name_N818.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N818_N818.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_error-suffix-on-exception-name_N818.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N803_N803.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-argument-name_N803.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N803_N803.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-argument-name_N803.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N801_N801.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-class-name_N801.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N801_N801.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-class-name_N801.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N804_N804.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-first-argument-name-for-class-method_N804.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N804_N804.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-first-argument-name-for-class-method_N804.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N805_N805.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-first-argument-name-for-method_N805.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N805_N805.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-first-argument-name-for-method_N805.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N802_N802.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-function-name_N802.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N802_N802.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-function-name_N802.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N803_N804.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-module-name_N999__badAllowed____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N803_N804.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_invalid-module-name_N999__badAllowed____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N812_N812.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_lowercase-imported-as-non-lowercase_N812.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N812_N812.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_lowercase-imported-as-non-lowercase_N812.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N815_N815.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_mixed-case-variable-in-class-scope_N815.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N815_N815.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_mixed-case-variable-in-class-scope_N815.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N816_N816.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_mixed-case-variable-in-global-scope_N816.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N816_N816.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_mixed-case-variable-in-global-scope_N816.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N806_N806.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_non-lowercase-variable-in-function_N806.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N806_N806.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_non-lowercase-variable-in-function_N806.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N803_N803.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-argument-name_N803.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N803_N803.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-argument-name_N803.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__MODULE__file.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-argument-name_N804.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__MODULE__file.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-argument-name_N804.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N801_N801.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-class-name_N801.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N801_N801.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-class-name_N801.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N804_N804.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-first-argument-name-for-class-method_N804.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N804_N804.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-first-argument-name-for-class-method_N804.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N805_N805.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-first-argument-name-for-method_N805.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N805_N805.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-first-argument-name-for-method_N805.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N802_N802.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-function-name_N802.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N802_N802.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-function-name_N802.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__MODULE____init__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__MODULE____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__MODULE____init__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__MODULE____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__flake9____init__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__MODULE__file.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__flake9____init__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__MODULE__file.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod with spaces__file.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__flake9____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod with spaces__file.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__flake9____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__invalid_name__0001_initial.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__invalid_name__0001_initial.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__invalid_name__0001_initial.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__invalid_name__0001_initial.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__invalid_name__import.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__invalid_name__import.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__invalid_name__import.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__invalid_name__import.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod with spaces____init__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod with spaces____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod with spaces____init__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod with spaces____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__no_module__test.txt.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod with spaces__file.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__no_module__test.txt.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod with spaces__file.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod-with-dashes____init__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod-with-dashes____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__mod-with-dashes____init__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__mod-with-dashes____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____init__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__no_module__test.txt.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____init__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__no_module__test.txt.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____main__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____main__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____setup__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____main__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name____setup__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____main__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name__file-with-dashes.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____setup__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name__file-with-dashes.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name____setup__.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name__file-with-dashes.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name__file-with-dashes.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N999_N999__module__valid_name__file-with-dashes.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name__file-with-dashes.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N999_N999__badAllowed____init__.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name__file-with-dashes.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__ignore_names_N999_N999__badAllowed____init__.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__invalid-module-name_N999__module__valid_name__file-with-dashes.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N812_N812.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__lowercase-imported-as-non-lowercase_N812.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N812_N812.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__lowercase-imported-as-non-lowercase_N812.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N815_N815.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__mixed-case-variable-in-class-scope_N815.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N815_N815.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__mixed-case-variable-in-class-scope_N815.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N816_N816.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__mixed-case-variable-in-global-scope_N816.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N816_N816.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__mixed-case-variable-in-global-scope_N816.py.snap diff --git a/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N806_N806.py.snap b/crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__non-lowercase-variable-in-function_N806.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__N806_N806.py.snap rename to crates/ruff_linter/src/rules/pep8_naming/snapshots/ruff_linter__rules__pep8_naming__tests__non-lowercase-variable-in-function_N806.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/mod.rs b/crates/ruff_linter/src/rules/perflint/mod.rs index 13ddca31252c42..c3e28dc3c55464 100644 --- a/crates/ruff_linter/src/rules/perflint/mod.rs +++ b/crates/ruff_linter/src/rules/perflint/mod.rs @@ -21,7 +21,7 @@ mod tests { #[test_case(Rule::ManualListCopy, Path::new("PERF402.py"))] #[test_case(Rule::ManualDictComprehension, Path::new("PERF403.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("perflint").join(path).as_path(), &LinterSettings::for_rule(rule_code).with_target_version(PythonVersion::PY310), @@ -35,11 +35,7 @@ mod tests { #[test_case(Rule::ManualDictComprehension, Path::new("PERF403.py"))] #[test_case(Rule::ManualListComprehension, Path::new("PERF401.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("perflint").join(path).as_path(), &LinterSettings::for_rule(rule_code) diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF102_PERF102.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__incorrect-dict-iterator_PERF102.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF102_PERF102.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__incorrect-dict-iterator_PERF102.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF403_PERF403.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__manual-dict-comprehension_PERF403.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF403_PERF403.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__manual-dict-comprehension_PERF403.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF401_PERF401.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__manual-list-comprehension_PERF401.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF401_PERF401.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__manual-list-comprehension_PERF401.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF402_PERF402.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__manual-list-copy_PERF402.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF402_PERF402.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__manual-list-copy_PERF402.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__PERF102_PERF102.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__incorrect-dict-iterator_PERF102.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__PERF102_PERF102.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__incorrect-dict-iterator_PERF102.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__PERF403_PERF403.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__manual-dict-comprehension_PERF403.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__PERF403_PERF403.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__manual-dict-comprehension_PERF403.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__PERF401_PERF401.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__manual-list-comprehension_PERF401.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__PERF401_PERF401.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__preview__manual-list-comprehension_PERF401.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF203_PERF203.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__try-except-in-loop_PERF203.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF203_PERF203.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__try-except-in-loop_PERF203.py.snap diff --git a/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF101_PERF101.py.snap b/crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__unnecessary-list-cast_PERF101.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__PERF101_PERF101.py.snap rename to crates/ruff_linter/src/rules/perflint/snapshots/ruff_linter__rules__perflint__tests__unnecessary-list-cast_PERF101.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/mod.rs b/crates/ruff_linter/src/rules/pycodestyle/mod.rs index fcbd0345fd7a50..785eca607d9eb2 100644 --- a/crates/ruff_linter/src/rules/pycodestyle/mod.rs +++ b/crates/ruff_linter/src/rules/pycodestyle/mod.rs @@ -66,7 +66,7 @@ mod tests { #[test_case(Rule::UselessSemicolon, Path::new("E703.ipynb"))] #[test_case(Rule::WhitespaceAfterDecorator, Path::new("E204.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pycodestyle").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -100,11 +100,7 @@ mod tests { #[test_case(Rule::TooManyNewlinesAtEndOfFile, Path::new("W391_4.py"))] #[test_case(Rule::TooManyNewlinesAtEndOfFile, Path::new("W391.ipynb"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pycodestyle").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code).with_preview_mode(), @@ -205,7 +201,7 @@ mod tests { )] #[test_case(Rule::MissingWhitespaceAroundParameterEquals, Path::new("E25.py"))] fn logical(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pycodestyle").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -240,7 +236,7 @@ mod tests { #[test_case(Rule::TooManyBlankLines, Path::new("E303_first_line_expression.py"))] #[test_case(Rule::TooManyBlankLines, Path::new("E303_first_line_statement.py"))] fn blank_lines_first_line(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pycodestyle").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -264,7 +260,7 @@ mod tests { Path::new("E30_syntax_error.py") )] fn blank_lines(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pycodestyle").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -340,7 +336,7 @@ mod tests { #[test_case(Rule::BlankLinesAfterFunctionOrClass)] #[test_case(Rule::BlankLinesBeforeNestedDefinition)] fn blank_lines_typing_stub(rule_code: Rule) -> Result<()> { - let snapshot = format!("blank_lines_{}_typing_stub", rule_code.noqa_code()); + let snapshot = format!("blank_lines_{}_typing_stub", rule_code.name()); let diagnostics = test_path( Path::new("pycodestyle").join("E30.pyi"), &settings::LinterSettings::for_rule(rule_code), @@ -356,7 +352,7 @@ mod tests { #[test_case(Rule::BlankLinesAfterFunctionOrClass)] #[test_case(Rule::BlankLinesBeforeNestedDefinition)] fn blank_lines_notebook(rule_code: Rule) -> Result<()> { - let snapshot = format!("blank_lines_{}_notebook", rule_code.noqa_code()); + let snapshot = format!("blank_lines_{}_notebook", rule_code.name()); let diagnostics = test_path( Path::new("pycodestyle").join("E30.ipynb"), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E742_E742.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-class-name_E742.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E742_E742.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-class-name_E742.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E743_E743.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-function-name_E743.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E743_E743.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-function-name_E743.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E741_E741.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-variable-name_E741.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E741_E741.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-variable-name_E741.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_2.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-variable-name_E741.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_2.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__ambiguous-variable-name_E741.pyi.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E722_E722.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__bare-except_E722.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E722_E722.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__bare-except_E722.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E304_E30.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-after-decorator_E30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E304_E30.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-after-decorator_E30.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E301_E30.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-between-methods_E30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E301_E30.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-between-methods_E30.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E301_E30_syntax_error.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-between-methods_E30_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E301_E30_syntax_error.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-between-methods_E30_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W293_W29.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-with-whitespace_W29.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W293_W29.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-with-whitespace_W29.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W293_W293.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-with-whitespace_W293.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W293_W293.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-line-with-whitespace_W293.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E305_E30.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-after-function-or-class_E30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E305_E30.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-after-function-or-class_E30.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E305_E30_syntax_error.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-after-function-or-class_E30_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E305_E30_syntax_error.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-after-function-or-class_E30_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E306_E30.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-before-nested-definition_E30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E306_E30.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-before-nested-definition_E30.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E306_E30_syntax_error.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-before-nested-definition_E30_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E306_E30_syntax_error.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-before-nested-definition_E30_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E30.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E30.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E30.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_docstring.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_docstring.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_docstring.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_docstring.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_expression.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_expression.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_expression.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_expression.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_function.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_function.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_function.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_function.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_statement.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_statement.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E302_first_line_statement.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E302_first_line_statement.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E30_syntax_error.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E30_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E302_E30_syntax_error.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank-lines-top-level_E30_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E304_notebook.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-after-decorator_notebook.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E304_notebook.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-after-decorator_notebook.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E304_typing_stub.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-after-decorator_typing_stub.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E304_typing_stub.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-after-decorator_typing_stub.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E301_notebook.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-between-methods_notebook.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E301_notebook.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-between-methods_notebook.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_3.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-between-methods_typing_stub.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_3.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-line-between-methods_typing_stub.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E305_notebook.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-after-function-or-class_notebook.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E305_notebook.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-after-function-or-class_notebook.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_4.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-after-function-or-class_typing_stub.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_4.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-after-function-or-class_typing_stub.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E306_notebook.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-before-nested-definition_notebook.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E306_notebook.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-before-nested-definition_notebook.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_5.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-before-nested-definition_typing_stub.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_5.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-before-nested-definition_typing_stub.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E302_notebook.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-top-level_notebook.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E302_notebook.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-top-level_notebook.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E741_E741.pyi.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-top-level_typing_stub.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E741_E741.pyi.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_blank-lines-top-level_typing_stub.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E303_notebook.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_too-many-blank-lines_notebook.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E303_notebook.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_too-many-blank-lines_notebook.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E303_typing_stub.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_too-many-blank-lines_typing_stub.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E303_typing_stub.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_too-many-blank-lines_typing_stub.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E114_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__indentation-with-invalid-multiple-comment_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E114_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__indentation-with-invalid-multiple-comment_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E111_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__indentation-with-invalid-multiple_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E111_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__indentation-with-invalid-multiple_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W605_W605_0.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__invalid-escape-sequence_W605_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W605_W605_0.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__invalid-escape-sequence_W605_0.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W605_W605_1.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__invalid-escape-sequence_W605_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W605_W605_1.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__invalid-escape-sequence_W605_1.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E731_E731.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__lambda-assignment_E731.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E731_E731.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__lambda-assignment_E731.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E501_E501.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__line-too-long_E501.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E501_E501.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__line-too-long_E501.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E501_E501_3.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__line-too-long_E501_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E501_E501_3.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__line-too-long_E501_3.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E501_E501_4.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__line-too-long_E501_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E501_E501_4.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__line-too-long_E501_4.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_0.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_0.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_0.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_1.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_1.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_1.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_2.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_2.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_2.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_3.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W292_W292_3.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-newline-at-end-of-file_W292_3.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E275_E27.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-after-keyword_E27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E275_E27.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-after-keyword_E27.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E226_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-arithmetic-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E226_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-arithmetic-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E227_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-bitwise-or-shift-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E227_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-bitwise-or-shift-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E228_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-modulo-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E228_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-modulo-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E225_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E225_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E252_E25.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-parameter-equals_E25.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E252_E25.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace-around-parameter-equals_E25.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E231_E23.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace_E23.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E231_E23.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__missing-whitespace_E23.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E101_E101.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__mixed-spaces-and-tabs_E101.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E101_E101.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__mixed-spaces-and-tabs_E101.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E40.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E40.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E40.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E40.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402.ipynb.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402.ipynb.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_0.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_0.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_0.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_1.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E402_E402_1.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_1.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E301_typing_stub.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E301_typing_stub.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_2.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E302_typing_stub.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E302_typing_stub.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_3.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E305_typing_stub.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E305_typing_stub.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_4.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E306_typing_stub.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__blank_lines_E306_typing_stub.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__module-import-not-at-top-of-file_E402_5.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E401_E40.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-imports-on-one-line_E40.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E401_E40.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-imports-on-one-line_E40.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E266_E26.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-leading-hashes-for-block-comment_E26.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E266_E26.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-leading-hashes-for-block-comment_E26.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E241_E24.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-comma_E24.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E241_E24.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-comma_E24.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E271_E27.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-keyword_E27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E271_E27.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-keyword_E27.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E222_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E222_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-after-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E272_E27.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-before-keyword_E27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E272_E27.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-before-keyword_E27.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E221_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-before-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E221_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-spaces-before-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E701_E70.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-statements-on-one-line-colon_E70.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E701_E70.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-statements-on-one-line-colon_E70.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E702_E70.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-statements-on-one-line-semicolon_E70.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E702_E70.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__multiple-statements-on-one-line-semicolon_E70.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E115_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-indented-block-comment_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E115_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-indented-block-comment_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E112_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-indented-block_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E112_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-indented-block_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E265_E26.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-space-after-block-comment_E26.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E265_E26.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-space-after-block-comment_E26.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E262_E26.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-space-after-inline-comment_E26.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E262_E26.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__no-space-after-inline-comment_E26.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E711_E711.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__none-comparison_E711.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E711_E711.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__none-comparison_E711.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E713_E713.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__not-in-test_E713.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E713_E713.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__not-in-test_E713.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E714_E714.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__not-is-test_E714.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E714_E714.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__not-is-test_E714.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E117_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__over-indented_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E117_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__over-indented_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E501_E501_5.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__line-too-long_E501_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E501_E501_5.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__line-too-long_E501_5.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E40.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E40.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E40.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E40.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402.ipynb.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402.ipynb.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_0.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_0.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_0.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_1.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_1.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_1.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_2.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_2.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_2.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_3.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_3.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_3.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_4.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_4.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_4.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_5.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_5.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_5.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_comments.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_comments.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_comments.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_comments.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_docstring.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_docstring.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_docstring.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_docstring.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_future.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_future.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_future.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_future.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_shebang.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_shebang.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_shebang.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_shebang.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_shebang_docstring_and_future.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_shebang_docstring_and_future.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E402_E402_shebang_docstring_and_future.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__module-import-not-at-top-of-file_E402_shebang_docstring_and_future.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E502_E502.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__redundant-backslash_E502.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__E502_E502.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__redundant-backslash_E502.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391.ipynb.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391.ipynb.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_0.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_0.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_0.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_1.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_1.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_1.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_2.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_2.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_2.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_3.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_3.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_3.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_4.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__W391_W391_4.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__preview__too-many-newlines-at-end-of-file_W391_4.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E242_E24.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-after-comma_E24.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E242_E24.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-after-comma_E24.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E273_E27.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-after-keyword_E27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E273_E27.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-after-keyword_E27.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E224_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-after-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E224_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-after-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E274_E27.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-before-keyword_E27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E274_E27.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-before-keyword_E27.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E223_E22.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-before-operator_E22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E223_E22.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-before-operator_E22.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-indentation_W19.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__tab-indentation_W19.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E261_E26.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-few-spaces-before-inline-comment_E26.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E261_E26.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-few-spaces-before-inline-comment_E26.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E30.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E30.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E30.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_comment.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_comment.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_comment.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_comment.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_docstring.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_docstring.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_docstring.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_docstring.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_expression.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_expression.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_expression.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_expression.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_statement.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_statement.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E303_first_line_statement.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E303_first_line_statement.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E30_syntax_error.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E30_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E303_E30_syntax_error.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__too-many-blank-lines_E30_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W291_W29.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__trailing-whitespace_W29.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W291_W29.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__trailing-whitespace_W29.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W291_W291.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__trailing-whitespace_W291.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W291_W291.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__trailing-whitespace_W291.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E712_E712.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__true-false-comparison_E712.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E712_E712.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__true-false-comparison_E712.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E721_E721.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__type-comparison_E721.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E721_E721.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__type-comparison_E721.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E116_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__unexpected-indentation-comment_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E116_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__unexpected-indentation-comment_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E113_E11.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__unexpected-indentation_E11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E113_E11.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__unexpected-indentation_E11.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E251_E25.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__unexpected-spaces-around-keyword-parameter-equals_E25.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E251_E25.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__unexpected-spaces-around-keyword-parameter-equals_E25.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E703_E70.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__useless-semicolon_E70.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E703_E70.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__useless-semicolon_E70.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E703_E703.ipynb.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__useless-semicolon_E703.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E703_E703.ipynb.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__useless-semicolon_E703.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E204_E204.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-after-decorator_E204.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E204_E204.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-after-decorator_E204.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E201_E20.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-after-open-bracket_E20.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E201_E20.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-after-open-bracket_E20.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E202_E20.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-before-close-bracket_E20.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E202_E20.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-before-close-bracket_E20.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E211_E21.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-before-parameters_E21.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E211_E21.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-before-parameters_E21.py.snap diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-before-punctuation_E20.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E203_E20.py.snap rename to crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__whitespace-before-punctuation_E20.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/mod.rs b/crates/ruff_linter/src/rules/pydocstyle/mod.rs index e3490be53234fe..ff22b1f05928b2 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/mod.rs +++ b/crates/ruff_linter/src/rules/pydocstyle/mod.rs @@ -103,7 +103,7 @@ mod tests { #[test_case(Rule::TripleSingleQuotes, Path::new("D.py"))] #[test_case(Rule::TripleSingleQuotes, Path::new("D300.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pydocstyle").join(path).as_path(), &settings::LinterSettings { diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D202_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-after-function_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D202_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-after-function_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D202_D202.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-after-function_D202.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D202_D202.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-after-function_D202.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D211_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-before-class_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D211_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-before-class_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D201_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-before-function_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D201_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-line-before-function_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D412_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-lines-between-header-and-content_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D412_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-lines-between-header-and-content_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D412_sphinx.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-lines-between-header-and-content_sphinx.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D412_sphinx.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__blank-lines-between-header-and-content_sphinx.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D404_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__docstring-starts-with-this_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D404_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__docstring-starts-with-this_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100_D100.ipynb.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__docstring-tab-indentation_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100_D100.ipynb.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__docstring-tab-indentation_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D414_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__empty-docstring-section_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D414_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__empty-docstring-section_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D419_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__empty-docstring_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D419_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__empty-docstring_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D301_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__escape-sequence-in-docstring_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D301_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__escape-sequence-in-docstring_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D301_D301.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__escape-sequence-in-docstring_D301.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D301_D301.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__escape-sequence-in-docstring_D301.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100__unrelated___no_pkg_priv.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__first-word-uncapitalized_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100__unrelated___no_pkg_priv.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__first-word-uncapitalized_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D403_D403.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__first-word-uncapitalized_D403.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D403_D403.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__first-word-uncapitalized_D403.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D204_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__incorrect-blank-line-after-class_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D204_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__incorrect-blank-line-after-class_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D203_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__incorrect-blank-line-before-class_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D203_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__incorrect-blank-line-before-class_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D409_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__mismatched-section-underline-length_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D409_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__mismatched-section-underline-length_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D413_D413.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_D413.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D413_D413.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_D413.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D413_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D413_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D413_sphinx_directive.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_sphinx_directive.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D413_sphinx_directive.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-last-section_sphinx_directive.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D205_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-summary_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D205_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-blank-line-after-summary_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D407_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-dashed-underline-after-section_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D407_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-dashed-underline-after-section_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D406_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-new-line-after-section-name_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D406_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-new-line-after-section-name_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100__unrelated__pkg___priv__no_D100_priv.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-section-name-colon_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100__unrelated__pkg___priv__no_D100_priv.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-section-name-colon_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D408_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-section-underline-after-name_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D408_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-section-underline-after-name_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D415_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-terminal-punctuation_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D415_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-terminal-punctuation_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D415_D400_415.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-terminal-punctuation_D400_415.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D415_D400_415.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-terminal-punctuation_D400_415.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D400_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D400_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D400_D400.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D400.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D400_D400.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D400.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D400_D400_415.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D400_415.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D400_D400_415.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__missing-trailing-period_D400_415.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D212_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__multi-line-summary-first-line_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D212_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__multi-line-summary-first-line_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D213_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__multi-line-summary-second-line_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D213_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__multi-line-summary-second-line_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D209_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__new-line-after-last-paragraph_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D209_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__new-line-after-last-paragraph_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D410_D410.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__no-blank-line-after-section_D410.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D410_D410.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__no-blank-line-after-section_D410.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D410_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__no-blank-line-after-section_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D410_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__no-blank-line-after-section_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D411_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__no-blank-line-before-section_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D411_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__no-blank-line-before-section_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D405_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__non-capitalized-section-name_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D405_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__non-capitalized-section-name_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D104_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__non-capitalized-section-name_sphinx_directive.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D104_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__non-capitalized-section-name_sphinx_directive.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D401_D401.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__non-imperative-mood_D401.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D401_D401.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__non-imperative-mood_D401.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D208_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__over-indentation_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D208_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__over-indentation_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D208_D208.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__over-indentation_D208.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D208_D208.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__over-indentation_D208.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D215_D215.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section-underline_D215.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D215_D215.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section-underline_D215.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D215_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section-underline_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D215_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section-underline_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D214_D214_module.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section_D214_module.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D214_D214_module.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section_D214_module.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D214_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D214_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D106_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section_sphinx_directive.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D106_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overindented-section_sphinx_directive.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D418_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overload-with-docstring_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D418_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overload-with-docstring_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D206_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overload-with-docstring_D418.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D206_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__overload-with-docstring_D418.pyi.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D421_D421.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__property-docstring-starts-with-verb_D421.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D421_D421.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__property-docstring-starts-with-verb_D421.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D402_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__signature-in-docstring_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D402_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__signature-in-docstring_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D402_D402.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__signature-in-docstring_D402.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D402_D402.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__signature-in-docstring_D402.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D210_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__surrounding-whitespace_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D210_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__surrounding-whitespace_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D300_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__triple-single-quotes_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D300_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__triple-single-quotes_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D300_D300.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__triple-single-quotes_D300.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D300_D300.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__triple-single-quotes_D300.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D207_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__under-indentation_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D207_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__under-indentation_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D105_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-magic-method_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D105_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-magic-method_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D214_sphinx_directive.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-param_canonical_google_examples.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D214_sphinx_directive.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-param_canonical_google_examples.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D403_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-param_canonical_numpy_examples.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D403_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-param_canonical_numpy_examples.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D417_sections.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-param_sections.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D417_sections.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-param_sections.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D101_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-class_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D101_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-class_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D103_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-function_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D103_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-function_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D107_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-init_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D107_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-init_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D102_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-method_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D102_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-method_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D102_setter.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-method_setter.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D102_setter.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-method_setter.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D405_sphinx_directive.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module_D100.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D405_sphinx_directive.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module_D100.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D416_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated___no_pkg_priv.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D416_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated___no_pkg_priv.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100__unrelated__pkg__D100_pub.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated__pkg__D100_pub.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D100__unrelated__pkg__D100_pub.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated__pkg__D100_pub.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D417_canonical_google_examples.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated__pkg___priv__no_D100_priv.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D417_canonical_google_examples.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-module__unrelated__pkg___priv__no_D100_priv.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D417_canonical_numpy_examples.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-nested-class_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D417_canonical_numpy_examples.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-nested-class_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D418_D418.pyi.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D.py.snap similarity index 98% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D418_D418.pyi.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D.py.snap index d08596ffd3388f..724d6e7d20ae35 100644 --- a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D418_D418.pyi.snap +++ b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D.py.snap @@ -1,3 +1,4 @@ --- source: crates/ruff_linter/src/rules/pydocstyle/mod.rs --- + diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D104_D104____init__.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D104____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D104_D104____init__.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__undocumented-public-package_D104____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D200_D.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__unnecessary-multiline-docstring_D.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D200_D.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__unnecessary-multiline-docstring_D.py.snap diff --git a/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D200_D200.py.snap b/crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__unnecessary-multiline-docstring_D200.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__D200_D200.py.snap rename to crates/ruff_linter/src/rules/pydocstyle/snapshots/ruff_linter__rules__pydocstyle__tests__unnecessary-multiline-docstring_D200.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/mod.rs b/crates/ruff_linter/src/rules/pyflakes/mod.rs index e4f9641dde2036..1ce0d59ca9b159 100644 --- a/crates/ruff_linter/src/rules/pyflakes/mod.rs +++ b/crates/ruff_linter/src/rules/pyflakes/mod.rs @@ -187,7 +187,7 @@ mod tests { #[test_case(Rule::UnusedAnnotation, Path::new("F842.py"))] #[test_case(Rule::RaiseNotImplemented, Path::new("F901.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pyflakes").join(path).as_path(), &LinterSettings::for_rule(rule_code), @@ -201,7 +201,7 @@ mod tests { rule_code: Rule, path: &Path, ) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pyflakes").join(path).as_path(), &LinterSettings { @@ -261,11 +261,7 @@ mod tests { #[test_case(Rule::UndefinedExport, Path::new("__init__.py"))] #[test_case(Rule::RedefinedWhileUnused, Path::new("F811_36.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pyflakes").join(path).as_path(), &LinterSettings::for_rule(rule_code).with_preview_mode(), @@ -327,11 +323,7 @@ mod tests { // Regression test for https://github.com/astral-sh/ruff/issues/12897 #[test_case(Rule::UnusedImport, Path::new("F401_33/__init__.py"))] fn f401_preview_local_init_import(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let settings = LinterSettings { preview: PreviewMode::Enabled, isort: isort::settings::Settings { @@ -360,11 +352,7 @@ mod tests { #[test_case(Rule::UnusedImport, Path::new("F401_28__all_multiple/__init__.py"))] #[test_case(Rule::UnusedImport, Path::new("F401_29__all_conditional/__init__.py"))] fn f401_stable(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "{}_stable_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("{}_stable_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pyflakes").join(path).as_path(), &LinterSettings::for_rule(rule_code), @@ -383,7 +371,7 @@ mod tests { fn f401_deprecated_option(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!( "{}_deprecated_option_{}", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy() ); let diagnostics = test_path( diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F631_F631.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__assert-tuple_F631.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F631_F631.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__assert-tuple_F631.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F701_F701.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__break-outside-loop_F701.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F701_F701.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__break-outside-loop_F701.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F702_F702.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__continue-outside-loop_F702.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F702_F702.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__continue-outside-loop_F702.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F707_F707.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__default-except-not-last_F707.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F707_F707.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__default-except-not-last_F707.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F541_F541.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__f-string-missing-placeholders_F541.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F541_F541.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__f-string-missing-placeholders_F541.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F722_F722.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__forward-annotation-syntax-error_F722.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F722_F722.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__forward-annotation-syntax-error_F722.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F722_F722_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__forward-annotation-syntax-error_F722_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F722_F722_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__forward-annotation-syntax-error_F722_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F407_F407.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__future-feature-not-defined_F407.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F407_F407.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__future-feature-not-defined_F407.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F634_F634.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__if-tuple_F634.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F634_F634.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__if-tuple_F634.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F402_F402.ipynb.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__import-shadowed-by-loop-var_F402.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F402_F402.ipynb.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__import-shadowed-by-loop-var_F402.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F402_F402.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__import-shadowed-by-loop-var_F402.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F402_F402.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__import-shadowed-by-loop-var_F402.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F633_F633.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__invalid-print-syntax_F633.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F633_F633.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__invalid-print-syntax_F633.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F632_F632.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__is-literal_F632.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F632_F632.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__is-literal_F632.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F404_F404_0.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__late-future-import_F404_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F404_F404_0.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__late-future-import_F404_0.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F404_F404_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__late-future-import_F404_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F404_F404_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__late-future-import_F404_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F601_F601.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__multi-value-repeated-key-literal_F601.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F601_F601.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__multi-value-repeated-key-literal_F601.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F602_F602.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__multi-value-repeated-key-variable_F602.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F602_F602.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__multi-value-repeated-key-variable_F602.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F622_F622.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__multiple-starred-expressions_F622.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F622_F622.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__multiple-starred-expressions_F622.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F502_F502.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-mapping_F502.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F502_F502.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-mapping_F502.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F502_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-mapping_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F502_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-mapping_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F503_F503.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-sequence_F503.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F503_F503.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-sequence_F503.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F503_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-sequence_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F503_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-expected-sequence_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F504_F504.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-extra-named-arguments_F504.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F504_F504.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-extra-named-arguments_F504.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F504_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-extra-named-arguments_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F504_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-extra-named-arguments_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F501_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-invalid-format_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F501_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-invalid-format_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-missing-argument_F504.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-missing-argument_F504.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F505_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-missing-argument_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F505_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-missing-argument_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F506_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-mixed-positional-and-named_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F506_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-mixed-positional-and-named_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F507_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-positional-count-mismatch_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F507_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-positional-count-mismatch_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F508_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-star-requires-sequence_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F508_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-star-requires-sequence_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F509_F50x.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-unsupported-format-character_F50x.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F509_F50x.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__percent-format-unsupported-format-character_F50x.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F811_F811_36.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__redefined-while-unused_F811_36.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F811_F811_36.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__redefined-while-unused_F811_36.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F822___init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__undefined-export___init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F822___init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__undefined-export___init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_24____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_24____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_24____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_24____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_25__all_nonempty____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_25__all_nonempty____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_25__all_nonempty____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_25__all_nonempty____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_26__all_empty____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_26__all_empty____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_26__all_empty____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_26__all_empty____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_27__all_mistyped____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_27__all_mistyped____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_27__all_mistyped____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_27__all_mistyped____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_28__all_multiple____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_28__all_multiple____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_28__all_multiple____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_28__all_multiple____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_29__all_conditional____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_29__all_conditional____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_29__all_conditional____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_29__all_conditional____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_33____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_33____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_33____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import_F401_33____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401___init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import___init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401___init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__unused-import___init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F901_F901.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__raise-not-implemented_F901.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F901_F901.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__raise-not-implemented_F901.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_0.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_0.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_0.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_12.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_10.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_12.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_10.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_13.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_13.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_11.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_12.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_12.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_12.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_12.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_14.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_13.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_14.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_13.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_16.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_14.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_16.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_14.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_15.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_15.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_15.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_15.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_16.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_16.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_16.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_16.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_17.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_17.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_17.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_17.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_19.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_18.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_19.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_18.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_2.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_19.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_2.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_19.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_2.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_2.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_2.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_20.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_20.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_20.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_20.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_21.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_21.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_21.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_21.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_21.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_21.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_22.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_23.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_23.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_23.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_23.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_22.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_24.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_22.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_24.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_3.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_25.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_3.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_25.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_26.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_26.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_26.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_26.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_32.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_32.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_27.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_28.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_28.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_28.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_28.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_29.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_29.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_29.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_29.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_3.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_3.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_3.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_30.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_30.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_30.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_31.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_31.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_31.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_31.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_32.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_32.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_32.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_32.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_4.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_33.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_4.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_33.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_35.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_35.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_35.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_35.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_8.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_36.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_8.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_36.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_4.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_4.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_4.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_5.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_5.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_5.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_6.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_6.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_6.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_6.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F505_F504.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_7.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F505_F504.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_7.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_8.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_8.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_8.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_8.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_10.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_9.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_10.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__redefined-while-unused_F811_9.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F706_F706.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__return-outside-function_F706.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F706_F706.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__return-outside-function_F706.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F522_F522.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-extra-named-arguments_F522.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F522_F522.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-extra-named-arguments_F522.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F523_F523.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-extra-positional-arguments_F523.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F523_F523.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-extra-positional-arguments_F523.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F521_F521.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-invalid-format_F521.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F521_F521.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-invalid-format_F521.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F524_F524.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-missing-arguments_F524.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F524_F524.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-missing-arguments_F524.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F525_F525.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-mixing-automatic_F525.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F525_F525.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__string-dot-format-mixing-automatic_F525.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_0.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_0.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_0.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_0.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_0.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_0.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_0.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_1b.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_1b.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_1b.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_1b.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_11.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_11.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_2.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_3.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_3.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-export_F822_3.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F405_F405.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local-with-import-star-usage_F405.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F405_F405.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local-with-import-star-usage_F405.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F403_F403.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local-with-import-star_F403.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F403_F403.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local-with-import-star_F403.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F406_F406.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local-with-nested-import-star-usage_F406.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F406_F406.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local-with-nested-import-star-usage_F406.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F823_F823.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local_F823.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F823_F823.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-local_F823.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_0.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_0.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_0.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_13.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_10.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_13.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_10.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_11.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_11.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_11.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_11.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_11.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_11.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_11.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_12.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_12.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_12.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_12.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_13.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_13.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_13.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_13.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_14.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_14.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_14.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_14.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_18.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_15.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_18.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_15.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_19.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_16.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_19.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_16.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_17.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_17.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_17.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_17.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_18.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_18.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_18.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_18.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_19.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_19.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_19.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_19.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_20.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_20.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_2.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_20.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_20.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_20.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_20.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_21.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_21.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_21.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_21.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_22.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_22.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_22.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_22.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_24.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_23.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_24.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_23.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_25.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_24.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_25.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_24.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_27.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_25.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_27.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_25.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_26.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_26.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_26.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_26.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_33.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_26.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_33.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_26.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_27.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_27.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_27.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_27.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_28.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_28.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_28.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_28.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_36.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_29.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_36.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_29.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_3.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_3.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_3.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_30.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_30.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_30.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_31.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_31.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_31.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_31.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_7.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_32.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_7.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_32.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_33.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_33.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_33.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_33.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_34.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_34.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_34.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_34.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_34.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_34.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_34.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_34.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_4.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_4.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_4.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_5.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_5.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_5.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_5.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_5.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_5.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_5.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_9.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_6.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F811_F811_9.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_6.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_7.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_7.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_7.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_7.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_10.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_8.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_10.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_8.pyi.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_9.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_9.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_9.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__undefined-name_F821_9.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F842_F842.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-annotation_F842.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F842_F842.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-annotation_F842.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_0.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_0.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_0.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_14.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_14.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_10.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_10.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_10.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_10.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_11.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_11.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_11.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_15.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_12.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_15.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_12.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_16.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_13.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_16.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_13.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_2.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_14.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_2.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_14.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_15.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_15.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_15.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_15.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_22.ipynb.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_16.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_22.ipynb.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_16.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_17.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_17.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_17.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_17.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_18.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_18.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_18.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_18.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_23.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_19.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_23.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_19.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_24.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_24.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_2.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_25.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_20.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_25.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_20.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_26.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_21.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_26.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_21.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_29.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_22.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_29.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_22.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_23.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_23.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_23.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_23.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_32.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_32.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_3.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_6.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_32.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_6.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_32.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_34.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_34.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_34.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_34.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_8.pyi.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F821_F821_8.pyi.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_4.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_5.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_5.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_5.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_6.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_6.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_6.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_6.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_7.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_7.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_7.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_7.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_2.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_8.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F822_F822_2.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_8.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_9.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_9.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_F401_9.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_F401_9.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_24____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_24____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_24____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_24____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_25__all_nonempty____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_25__all_nonempty____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_25__all_nonempty____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_25__all_nonempty____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_26__all_empty____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_26__all_empty____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_26__all_empty____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_26__all_empty____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_27__all_mistyped____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_27__all_mistyped____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_27__all_mistyped____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_27__all_mistyped____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_28__all_multiple____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_28__all_multiple____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_28__all_multiple____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_28__all_multiple____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_29__all_conditional____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_29__all_conditional____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_29__all_conditional____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_29__all_conditional____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_30.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_30.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_deprecated_option_F401_30.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_deprecated_option_F401_30.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_24____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_24____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_24____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_24____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_25__all_nonempty____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_25__all_nonempty____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_25__all_nonempty____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_25__all_nonempty____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_26__all_empty____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_26__all_empty____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_26__all_empty____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_26__all_empty____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_27__all_mistyped____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_27__all_mistyped____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_27__all_mistyped____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_27__all_mistyped____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_28__all_multiple____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_28__all_multiple____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F401_stable_F401_28__all_multiple____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_28__all_multiple____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_29__all_conditional____init__.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_29__all_conditional____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__preview__F401_F401_29__all_conditional____init__.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-import_stable_F401_29__all_conditional____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_0.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_0.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_0.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_1.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_1.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_1.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_2.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_2.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_2.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_3.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F841_F841_3.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__unused-variable_F841_3.py.snap diff --git a/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F704_F704.py.snap b/crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__yield-outside-function_F704.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__F704_F704.py.snap rename to crates/ruff_linter/src/rules/pyflakes/snapshots/ruff_linter__rules__pyflakes__tests__yield-outside-function_F704.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/mod.rs b/crates/ruff_linter/src/rules/pygrep_hooks/mod.rs index 8b4e7e438cc6a1..45c80e01c31f7c 100644 --- a/crates/ruff_linter/src/rules/pygrep_hooks/mod.rs +++ b/crates/ruff_linter/src/rules/pygrep_hooks/mod.rs @@ -22,7 +22,7 @@ mod tests { #[test_case(Rule::BlanketNOQA, Path::new("PGH004_3.py"))] #[test_case(Rule::InvalidMockAccess, Path::new("PGH005_0.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pygrep_hooks").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -33,11 +33,7 @@ mod tests { #[test_case(Rule::InvalidMockAccess, Path::new("PGH005_0.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); assert_diagnostics_diff!( snapshot, diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_0.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_0.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_0.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_1.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_1.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_1.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_2.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_2.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_2.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_3.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH004_PGH004_3.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-noqa_PGH004_3.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH003_PGH003_0.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-type-ignore_PGH003_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH003_PGH003_0.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-type-ignore_PGH003_0.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH003_PGH003_1.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-type-ignore_PGH003_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH003_PGH003_1.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__blanket-type-ignore_PGH003_1.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH005_PGH005_0.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__invalid-mock-access_PGH005_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__PGH005_PGH005_0.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__invalid-mock-access_PGH005_0.py.snap diff --git a/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__preview__PGH005_PGH005_0.py.snap b/crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__preview__invalid-mock-access_PGH005_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__preview__PGH005_PGH005_0.py.snap rename to crates/ruff_linter/src/rules/pygrep_hooks/snapshots/ruff_linter__rules__pygrep_hooks__tests__preview__invalid-mock-access_PGH005_0.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/mod.rs b/crates/ruff_linter/src/rules/pylint/mod.rs index ed9e7e7b9abd28..dcfa7b50a3c817 100644 --- a/crates/ruff_linter/src/rules/pylint/mod.rs +++ b/crates/ruff_linter/src/rules/pylint/mod.rs @@ -244,7 +244,7 @@ mod tests { #[test_case(Rule::LenTest, Path::new("len_as_condition.py"))] #[test_case(Rule::MissingMaxsplitArg, Path::new("missing_maxsplit_arg.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("pylint").join(path).as_path(), &LinterSettings { @@ -266,11 +266,7 @@ mod tests { Path::new("useless_exception_statement.py") )] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); assert_diagnostics_diff!( snapshot, diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0129_assert_on_string_literal.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__assert-on-string-literal_assert_on_string_literal.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0129_assert_on_string_literal.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__assert-on-string-literal_assert_on_string_literal.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1142_await_outside_async.ipynb.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__await-outside-async_await_outside_async.ipynb.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1142_await_outside_async.ipynb.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__await-outside-async_await_outside_async.ipynb.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1142_await_outside_async.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__await-outside-async_await_outside_async.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1142_await_outside_async.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__await-outside-async_await_outside_async.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW3201_bad_dunder_method_name.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-dunder-method-name_bad_dunder_method_name.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW3201_bad_dunder_method_name.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-dunder-method-name_bad_dunder_method_name.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1501_bad_open_mode.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-open-mode_bad_open_mode.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1501_bad_open_mode.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-open-mode_bad_open_mode.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0211_bad_staticmethod_argument.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-staticmethod-argument_bad_staticmethod_argument.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0211_bad_staticmethod_argument.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-staticmethod-argument_bad_staticmethod_argument.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1310_bad_str_strip_call.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-str-strip-call_bad_str_strip_call.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1310_bad_str_strip_call.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-str-strip-call_bad_str_strip_call.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1300_bad_string_format_character.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-string-format-character_bad_string_format_character.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1300_bad_string_format_character.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-string-format-character_bad_string_format_character.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1307_bad_string_format_type.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-string-format-type_bad_string_format_type.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1307_bad_string_format_type.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bad-string-format-type_bad_string_format_type.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2502_bidirectional_unicode.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bidirectional-unicode_bidirectional_unicode.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2502_bidirectional_unicode.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__bidirectional-unicode_bidirectional_unicode.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0711_binary_op_exception.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__binary-op-exception_binary_op_exception.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0711_binary_op_exception.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__binary-op-exception_binary_op_exception.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1716_boolean_chained_comparison.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__boolean-chained-comparison_boolean_chained_comparison.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1716_boolean_chained_comparison.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__boolean-chained-comparison_boolean_chained_comparison.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR5501_collapsible_else_if.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__collapsible-else-if_collapsible_else_if.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR5501_collapsible_else_if.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__collapsible-else-if_collapsible_else_if.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC1901_compare_to_empty_string.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__compare-to-empty-string_compare_to_empty_string.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC1901_compare_to_empty_string.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__compare-to-empty-string_compare_to_empty_string.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0133_comparison_of_constant.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__comparison-of-constant_comparison_of_constant.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0133_comparison_of_constant.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__comparison-of-constant_comparison_of_constant.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0124_comparison_with_itself.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__comparison-with-itself_comparison_with_itself.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0124_comparison_with_itself.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__comparison-with-itself_comparison_with_itself.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0414_import_aliasing_2____init__.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__continue-in-finally_continue_in_finally.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0414_import_aliasing_2____init__.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__continue-in-finally_continue_in_finally.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0206_dict_index_missing_items.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__dict-index-missing-items_dict_index_missing_items.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0206_dict_index_missing_items.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__dict-index-missing-items_dict_index_missing_items.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1141_dict_iter_missing_items.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__dict-iter-missing-items_dict_iter_missing_items.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1141_dict_iter_missing_items.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__dict-iter-missing-items_dict_iter_missing_items.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0241_duplicate_bases.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__duplicate-bases_duplicate_bases.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0241_duplicate_bases.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__duplicate-bases_duplicate_bases.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR2044_empty_comment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__empty-comment_empty_comment.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR2044_empty_comment.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__empty-comment_empty_comment.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR2044_empty_comment_line_continuation.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__empty-comment_empty_comment_line_continuation.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR2044_empty_comment_line_continuation.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__empty-comment_empty_comment_line_continuation.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1641_eq_without_hash.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__eq-without-hash_eq_without_hash.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1641_eq_without_hash.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__eq-without-hash_eq_without_hash.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0604_global_at_module_level.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__global-at-module-level_global_at_module_level.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0604_global_at_module_level.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__global-at-module-level_global_at_module_level.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0603_global_statement.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__global-statement_global_statement.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0603_global_statement.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__global-statement_global_statement.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0602_global_variable_not_assigned.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__global-variable-not-assigned_global_variable_not_assigned.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0602_global_variable_not_assigned.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__global-variable-not-assigned_global_variable_not_assigned.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1730_if_stmt_min_max.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__if-stmt-min-max_if_stmt_min_max.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1730_if_stmt_min_max.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__if-stmt-min-max_if_stmt_min_max.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0415_import_outside_top_level.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__import-outside-top-level_import_outside_top_level.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0415_import_outside_top_level.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__import-outside-top-level_import_outside_top_level.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2701_import_private_name__submodule____main__.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__import-private-name_import_private_name__submodule____main__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2701_import_private_name__submodule____main__.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__import-private-name_import_private_name__submodule____main__.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0406_import_self__module.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__import-self_import_self__module.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0406_import_self__module.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__import-self_import_self__module.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0605_invalid_all_format.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-all-format_invalid_all_format.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0605_invalid_all_format.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-all-format_invalid_all_format.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0604_invalid_all_object.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-all-object_invalid_all_object.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0604_invalid_all_object.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-all-object_invalid_all_object.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0304_invalid_return_type_bool.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-bool-return-type_invalid_return_type_bool.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0304_invalid_return_type_bool.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-bool-return-type_invalid_return_type_bool.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0308_invalid_return_type_bytes.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-bytes-return-type_invalid_return_type_bytes.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0308_invalid_return_type_bytes.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-bytes-return-type_invalid_return_type_bytes.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-backspace_invalid_characters.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-backspace_invalid_characters.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-backspace_invalid_characters_syntax_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-backspace_invalid_characters_syntax_error.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2513_invalid_characters.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-esc_invalid_characters.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2513_invalid_characters.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-esc_invalid_characters.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2514_invalid_characters.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-nul_invalid_characters.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2514_invalid_characters.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-nul_invalid_characters.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2512_invalid_characters.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-sub_invalid_characters.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2512_invalid_characters.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-sub_invalid_characters.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2515_invalid_characters.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-zero-width-space_invalid_characters.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2515_invalid_characters.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-character-zero-width-space_invalid_characters.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1508_invalid_envvar_default.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-envvar-default_invalid_envvar_default.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1508_invalid_envvar_default.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-envvar-default_invalid_envvar_default.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1507_invalid_envvar_value.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-envvar-value_invalid_envvar_value.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1507_invalid_envvar_value.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-envvar-value_invalid_envvar_value.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0309_invalid_return_type_hash.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-hash-return-type_invalid_return_type_hash.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0309_invalid_return_type_hash.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-hash-return-type_invalid_return_type_hash.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0305_invalid_return_type_index.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-index-return-type_invalid_return_type_index.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0305_invalid_return_type_index.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-index-return-type_invalid_return_type_index.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0303_invalid_return_type_length.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-length-return-type_invalid_return_type_length.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0303_invalid_return_type_length.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-length-return-type_invalid_return_type_length.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0307_invalid_return_type_str.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-str-return-type_invalid_return_type_str.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0307_invalid_return_type_str.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__invalid-str-return-type_invalid_return_type_str.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0208_iteration_over_set.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__iteration-over-set_iteration_over_set.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0208_iteration_over_set.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__iteration-over-set_iteration_over_set.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC1802_len_as_condition.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__len-test_len_as_condition.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC1802_len_as_condition.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__len-test_len_as_condition.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR6201_literal_membership.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__literal-membership_literal_membership.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR6201_literal_membership.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__literal-membership_literal_membership.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0118_load_before_global_declaration.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__load-before-global-declaration_load_before_global_declaration.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0118_load_before_global_declaration.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__load-before-global-declaration_load_before_global_declaration.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1206_logging_too_few_args.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__logging-too-few-args_logging_too_few_args.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1206_logging_too_few_args.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__logging-too-few-args_logging_too_few_args.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1205_logging_too_many_args.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__logging-too-many-args_logging_too_many_args.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1205_logging_too_many_args.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__logging-too-many-args_logging_too_many_args.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR2004_magic_value_comparison.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__magic-value-comparison_magic_value_comparison.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR2004_magic_value_comparison.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__magic-value-comparison_magic_value_comparison.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0402_import_aliasing.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__manual-from-import_import_aliasing.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0402_import_aliasing.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__manual-from-import_import_aliasing.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0704_misplaced_bare_raise.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__misplaced-bare-raise_misplaced_bare_raise.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0704_misplaced_bare_raise.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__misplaced-bare-raise_misplaced_bare_raise.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0207_missing_maxsplit_arg.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__missing-maxsplit-arg_missing_maxsplit_arg.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0207_missing_maxsplit_arg.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__missing-maxsplit-arg_missing_maxsplit_arg.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE4703_modified_iterating_set.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__modified-iterating-set_modified_iterating_set.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE4703_modified_iterating_set.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__modified-iterating-set_modified_iterating_set.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0131_named_expr_without_context.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__named-expr-without-context_named_expr_without_context.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0131_named_expr_without_context.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__named-expr-without-context_named_expr_without_context.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0177_nan_comparison.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nan-comparison_nan_comparison.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0177_nan_comparison.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nan-comparison_nan_comparison.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW3301_nested_min_max.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nested-min-max_nested_min_max.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW3301_nested_min_max.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nested-min-max_nested_min_max.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0202_no_method_decorator.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__no-classmethod-decorator_no_method_decorator.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0202_no_method_decorator.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__no-classmethod-decorator_no_method_decorator.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR6301_no_self_use.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__no-self-use_no_self_use.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR6301_no_self_use.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__no-self-use_no_self_use.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0203_no_method_decorator.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__no-staticmethod-decorator_no_method_decorator.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0203_no_method_decorator.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__no-staticmethod-decorator_no_method_decorator.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2403_non_ascii_module_import.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-ascii-import-name_non_ascii_module_import.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2403_non_ascii_module_import.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-ascii-import-name_non_ascii_module_import.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2401_non_ascii_name.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-ascii-name_non_ascii_name.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2401_non_ascii_name.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-ascii-name_non_ascii_name.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR6104_non_augmented_assignment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-augmented-assignment_non_augmented_assignment.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR6104_non_augmented_assignment.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-augmented-assignment_non_augmented_assignment.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0237_non_slot_assignment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-slot-assignment_non_slot_assignment.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0237_non_slot_assignment.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__non-slot-assignment_non_slot_assignment.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0115_nonlocal_and_global.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nonlocal-and-global_nonlocal_and_global.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0115_nonlocal_and_global.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nonlocal-and-global_nonlocal_and_global.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0117_nonlocal_without_binding.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nonlocal-without-binding_nonlocal_without_binding.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0117_nonlocal_without_binding.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__nonlocal-without-binding_nonlocal_without_binding.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0643_potential_index_error.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__potential-index-error_potential_index_error.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0643_potential_index_error.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__potential-index-error_potential_index_error.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__useless-exception-statement_useless_exception_statement.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__PLW0133_useless_exception_statement.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__preview__useless-exception-statement_useless_exception_statement.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0206_property_with_parameters.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__property-with-parameters_property_with_parameters.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0206_property_with_parameters.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__property-with-parameters_property_with_parameters.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redeclared-assigned-name_redeclared_assigned_name.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redeclared-assigned-name_redeclared_assigned_name.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1704_redefined_argument_from_local.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redefined-argument-from-local_redefined_argument_from_local.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1704_redefined_argument_from_local.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redefined-argument-from-local_redefined_argument_from_local.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW2901_redefined_loop_name.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redefined-loop-name_redefined_loop_name.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW2901_redefined_loop_name.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redefined-loop-name_redefined_loop_name.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0244_redefined_slots_in_subclass.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redefined-slots-in-subclass_redefined_slots_in_subclass.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0244_redefined_slots_in_subclass.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__redefined-slots-in-subclass_redefined_slots_in_subclass.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1714_repeated_equality_comparison.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__repeated-equality-comparison_repeated_equality_comparison.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1714_repeated_equality_comparison.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__repeated-equality-comparison_repeated_equality_comparison.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1132_repeated_keyword_argument.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__repeated-keyword-argument_repeated_keyword_argument.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1132_repeated_keyword_argument.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__repeated-keyword-argument_repeated_keyword_argument.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0101_return_in_init.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__return-in-init_return_in_init.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0101_return_in_init.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__return-in-init_return_in_init.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0127_self_assigning_variable.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__self-assigning-variable_self_assigning_variable.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0127_self_assigning_variable.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__self-assigning-variable_self_assigning_variable.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__self-or-cls-assignment_self_or_cls_assignment.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__self-or-cls-assignment_self_or_cls_assignment.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1507_shallow_copy_environ.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__shallow-copy-environ_shallow_copy_environ.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1507_shallow_copy_environ.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__shallow-copy-environ_shallow_copy_environ.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0205_single_string_slots.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__single-string-slots_single_string_slots.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0205_single_string_slots.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__single-string-slots_single_string_slots.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1519_singledispatch_method.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__singledispatch-method_singledispatch_method.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1519_singledispatch_method.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__singledispatch-method_singledispatch_method.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1520_singledispatchmethod_function.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__singledispatchmethod-function_singledispatchmethod_function.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1520_singledispatchmethod_function.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__singledispatchmethod-function_singledispatchmethod_function.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1708_stop_iteration_return.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__stop-iteration-return_stop_iteration_return.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1708_stop_iteration_return.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__stop-iteration-return_stop_iteration_return.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1509_subprocess_popen_preexec_fn.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__subprocess-popen-preexec-fn_subprocess_popen_preexec_fn.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1509_subprocess_popen_preexec_fn.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__subprocess-popen-preexec-fn_subprocess_popen_preexec_fn.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1510_subprocess_run_without_check.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__subprocess-run-without-check_subprocess_run_without_check.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1510_subprocess_run_without_check.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__subprocess-run-without-check_subprocess_run_without_check.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0245_super_without_brackets.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__super-without-brackets_super_without_brackets.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0245_super_without_brackets.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__super-without-brackets_super_without_brackets.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1712_swap_with_temporary_variable.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__swap-with-temporary-variable_swap_with_temporary_variable.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1712_swap_with_temporary_variable.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__swap-with-temporary-variable_swap_with_temporary_variable.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_0.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_0.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_0.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_1.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_1.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_1.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_10.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_10.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_10.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_10.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_11.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_11.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_11.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_11.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_12.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_12.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_12.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_12.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_13.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_13.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_13.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_13.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_14.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_14.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_14.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_14.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_15.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_15.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_15.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_15.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_16.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_16.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_16.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_16.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_2.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_2.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_2.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_3.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_3.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_3.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_4.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_4.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_4.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_5.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_5.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_5.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_5.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_6.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_6.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_6.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_6.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_7.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_7.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_7.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_7.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_8.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_8.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_8.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_8.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_9.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_9.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1722_sys_exit_alias_9.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__sys-exit-alias_sys_exit_alias_9.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0913_too_many_arguments.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-arguments_too_many_arguments.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0913_too_many_arguments.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-arguments_too_many_arguments.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0912_too_many_branches.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-branches_too_many_branches.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0912_too_many_branches.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-branches_too_many_branches.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1702_too_many_nested_blocks.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-nested-blocks_too_many_nested_blocks.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1702_too_many_nested_blocks.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-nested-blocks_too_many_nested_blocks.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0917_too_many_positional_arguments.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-positional-arguments_too_many_positional_arguments.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0917_too_many_positional_arguments.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-positional-arguments_too_many_positional_arguments.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0911_too_many_return_statements.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-return-statements_too_many_return_statements.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0911_too_many_return_statements.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-return-statements_too_many_return_statements.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0717_too_many_try_statements.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-statements-in-try-clause_too_many_try_statements.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0717_too_many_try_statements.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-statements-in-try-clause_too_many_try_statements.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0915_too_many_statements.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-statements_too_many_statements.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR0915_too_many_statements.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__too-many-statements_too_many_statements.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0131_type_bivariance.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__type-bivariance_type_bivariance.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0131_type_bivariance.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__type-bivariance_type_bivariance.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0105_type_name_incorrect_variance.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__type-name-incorrect-variance_type_name_incorrect_variance.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0105_type_name_incorrect_variance.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__type-name-incorrect-variance_type_name_incorrect_variance.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0132_type_param_name_mismatch.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__type-param-name-mismatch_type_param_name_mismatch.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0132_type_param_name_mismatch.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__type-param-name-mismatch_type_param_name_mismatch.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0302_unexpected_special_method_signature.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unexpected-special-method-signature_unexpected_special_method_signature.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0302_unexpected_special_method_signature.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unexpected-special-method-signature_unexpected_special_method_signature.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1733_unnecessary_dict_index_lookup.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-dict-index-lookup_unnecessary_dict_index_lookup.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1733_unnecessary_dict_index_lookup.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-dict-index-lookup_unnecessary_dict_index_lookup.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC3002_unnecessary_direct_lambda_call.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-direct-lambda-call_unnecessary_direct_lambda_call.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC3002_unnecessary_direct_lambda_call.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-direct-lambda-call_unnecessary_direct_lambda_call.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2801_unnecessary_dunder_call.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-dunder-call_unnecessary_dunder_call.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC2801_unnecessary_dunder_call.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-dunder-call_unnecessary_dunder_call.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0108_unnecessary_lambda.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-lambda_unnecessary_lambda.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0108_unnecessary_lambda.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-lambda_unnecessary_lambda.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1736_unnecessary_list_index_lookup.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-list-index-lookup_unnecessary_list_index_lookup.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1736_unnecessary_list_index_lookup.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unnecessary-list-index-lookup_unnecessary_list_index_lookup.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0101_unreachable.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unreachable-code_unreachable.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0101_unreachable.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unreachable-code_unreachable.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1514_unspecified_encoding.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unspecified-encoding_unspecified_encoding.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW1514_unspecified_encoding.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__unspecified-encoding_unspecified_encoding.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0120_useless_else_on_loop.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-else-on-loop_useless_else_on_loop.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0120_useless_else_on_loop.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-else-on-loop_useless_else_on_loop.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-exception-statement_useless_exception_statement.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0133_useless_exception_statement.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-exception-statement_useless_exception_statement.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0414_import_aliasing.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-import-alias_import_aliasing.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLC0414_import_aliasing.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-import-alias_import_aliasing.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0116_continue_in_finally.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-import-alias_import_aliasing_2____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0116_continue_in_finally.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-import-alias_import_aliasing_2____init__.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1711_useless_return.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-return_useless_return.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLR1711_useless_return.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-return_useless_return.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW2101_useless_with_lock.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-with-lock_useless_with_lock.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW2101_useless_with_lock.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__useless-with-lock_useless_with_lock.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1700_yield_from_in_async_function.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__yield-from-in-async-function_yield_from_in_async_function.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE1700_yield_from_in_async_function.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__yield-from-in-async-function_yield_from_in_async_function.py.snap diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0100_yield_in_init.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__yield-in-init_yield_in_init.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE0100_yield_in_init.py.snap rename to crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__yield-in-init_yield_in_init.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/mod.rs b/crates/ruff_linter/src/rules/refurb/mod.rs index a1338ad22bc93a..342ea1a8322cb3 100644 --- a/crates/ruff_linter/src/rules/refurb/mod.rs +++ b/crates/ruff_linter/src/rules/refurb/mod.rs @@ -58,7 +58,7 @@ mod tests { #[test_case(Rule::SubclassBuiltin, Path::new("FURB189.py"))] #[test_case(Rule::FromisoformatReplaceZ, Path::new("FURB162.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("refurb").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB161_FURB161.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__bit-count_FURB161.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB161_FURB161.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__bit-count_FURB161.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB132_FURB132.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__check-and-remove-from-set_FURB132.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB132_FURB132.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__check-and-remove-from-set_FURB132.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB131_FURB131.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__delete-full-slice_FURB131.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB131_FURB131.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__delete-full-slice_FURB131.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB116_FURB116.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__f-string-number-format_FURB116.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB116_FURB116.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__f-string-number-format_FURB116.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB142_FURB142.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__for-loop-set-mutations_FURB142.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB142_FURB142.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__for-loop-set-mutations_FURB142.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB122_FURB122.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__for-loop-writes_FURB122.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB122_FURB122.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__for-loop-writes_FURB122.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB162_FURB162.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__fromisoformat-replace-z_FURB162.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB162_FURB162.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__fromisoformat-replace-z_FURB162.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB156_FURB156.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__hardcoded-string-charset_FURB156.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB156_FURB156.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__hardcoded-string-charset_FURB156.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB181_FURB181.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__hashlib-digest-hex_FURB181.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB181_FURB181.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__hashlib-digest-hex_FURB181.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB110_FURB110.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__if-exp-instead-of-or-operator_FURB110.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB110_FURB110.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__if-exp-instead-of-or-operator_FURB110.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB136_FURB136.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__if-expr-min-max_FURB136.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB136_FURB136.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__if-expr-min-max_FURB136.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB177_FURB177.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__implicit-cwd_FURB177.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB177_FURB177.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__implicit-cwd_FURB177.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB166_FURB166.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__int-on-sliced-str_FURB166.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB166_FURB166.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__int-on-sliced-str_FURB166.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB168_FURB168.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__isinstance-type-none_FURB168.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB168_FURB168.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__isinstance-type-none_FURB168.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB187_FURB187.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__list-reverse-copy_FURB187.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB187_FURB187.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__list-reverse-copy_FURB187.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB152_FURB152.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__math-constant_FURB152.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB152_FURB152.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__math-constant_FURB152.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB180_FURB180.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__meta-class-abc-meta_FURB180.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB180_FURB180.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__meta-class-abc-meta_FURB180.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB105_FURB105.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__print-empty-string_FURB105.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB105_FURB105.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__print-empty-string_FURB105.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB101_FURB101_0.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__read-whole-file_FURB101_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB101_FURB101_0.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__read-whole-file_FURB101_0.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB101_FURB101_1.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__read-whole-file_FURB101_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB101_FURB101_1.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__read-whole-file_FURB101_1.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB101_FURB101_2.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__read-whole-file_FURB101_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB101_FURB101_2.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__read-whole-file_FURB101_2.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB129_FURB129.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__readlines-in-for_FURB129.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB129_FURB129.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__readlines-in-for_FURB129.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB163_FURB163.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__redundant-log-base_FURB163.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB163_FURB163.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__redundant-log-base_FURB163.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB167_FURB167.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__regex-flag-alias_FURB167.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB167_FURB167.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__regex-flag-alias_FURB167.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB118_FURB118.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__reimplemented-operator_FURB118.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB118_FURB118.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__reimplemented-operator_FURB118.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB140_FURB140.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__reimplemented-starmap_FURB140.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB140_FURB140.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__reimplemented-starmap_FURB140.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB113_FURB113.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__repeated-append_FURB113.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB113_FURB113.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__repeated-append_FURB113.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB154_FURB154.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__repeated-global_FURB154.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB154_FURB154.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__repeated-global_FURB154.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB171_FURB171_0.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__single-item-membership-test_FURB171_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB171_FURB171_0.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__single-item-membership-test_FURB171_0.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB171_FURB171_1.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__single-item-membership-test_FURB171_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB171_FURB171_1.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__single-item-membership-test_FURB171_1.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB145_FURB145.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__slice-copy_FURB145.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB145_FURB145.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__slice-copy_FURB145.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB188_FURB188.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__slice-to-remove-prefix-or-suffix_FURB188.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB188_FURB188.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__slice-to-remove-prefix-or-suffix_FURB188.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB192_FURB192.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__sorted-min-max_FURB192.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB192_FURB192.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__sorted-min-max_FURB192.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB192_FURB192_1.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__sorted-min-max_FURB192_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB192_FURB192_1.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__sorted-min-max_FURB192_1.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB189_FURB189.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__subclass-builtin_FURB189.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB189_FURB189.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__subclass-builtin_FURB189.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB169_FURB169.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__type-none-comparison_FURB169.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB169_FURB169.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__type-none-comparison_FURB169.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB148_FURB148.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__unnecessary-enumerate_FURB148.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB148_FURB148.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__unnecessary-enumerate_FURB148.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB164_FURB164.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__unnecessary-from-float_FURB164.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB164_FURB164.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__unnecessary-from-float_FURB164.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB157_FURB157.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__verbose-decimal-constructor_FURB157.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB157_FURB157.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__verbose-decimal-constructor_FURB157.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB103_FURB103_0.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__write-whole-file_FURB103_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB103_FURB103_0.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__write-whole-file_FURB103_0.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB103_FURB103_1.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__write-whole-file_FURB103_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB103_FURB103_1.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__write-whole-file_FURB103_1.py.snap diff --git a/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB103_FURB103_2.py.snap b/crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__write-whole-file_FURB103_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__FURB103_FURB103_2.py.snap rename to crates/ruff_linter/src/rules/refurb/snapshots/ruff_linter__rules__refurb__tests__write-whole-file_FURB103_2.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/mod.rs b/crates/ruff_linter/src/rules/ruff/mod.rs index e0490ff25897e3..c646cf3d4d5019 100644 --- a/crates/ruff_linter/src/rules/ruff/mod.rs +++ b/crates/ruff_linter/src/rules/ruff/mod.rs @@ -125,7 +125,7 @@ mod tests { #[test_case(Rule::NonEmptyInitModule, Path::new("RUF067/modules/__init__.py"))] #[test_case(Rule::NonEmptyInitModule, Path::new("RUF067/modules/okay.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("ruff").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code), @@ -289,7 +289,7 @@ mod tests { fn implicit_optional_py39(path: &Path) -> Result<()> { let snapshot = format!( "PY39_{}_{}", - Rule::ImplicitOptional.noqa_code(), + Rule::ImplicitOptional.name(), path.to_string_lossy() ); let diagnostics = test_path( @@ -769,7 +769,7 @@ mod tests { #[test_case(Rule::InvalidPyprojectToml, Path::new("various_invalid"))] #[test_case(Rule::InvalidPyprojectToml, Path::new("pep639"))] fn invalid_pyproject_toml(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); + let snapshot = format!("{}_{}", rule_code.name(), path.to_string_lossy()); let messages = test_toml_path( Path::new("ruff/pyproject_toml") .join(path) @@ -797,11 +797,7 @@ mod tests { #[test_case(Rule::UselessFinally, Path::new("RUF072.py"))] #[test_case(Rule::FStringPercentFormat, Path::new("RUF073.py"))] fn preview_rules(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "preview__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("preview__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("ruff").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code).with_preview_mode(), @@ -814,7 +810,7 @@ mod tests { fn preview_rules_py37(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!( "preview__py37__{}_{}", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy() ); let diagnostics = test_path( @@ -831,7 +827,7 @@ mod tests { fn preview_rules_py38(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!( "preview__py38__{}_{}", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy() ); let diagnostics = test_path( @@ -857,7 +853,7 @@ mod tests { let snapshot = format!( "custom_dummy_var_regexp_preset__{}_{}_{}", - rule_code.noqa_code(), + rule_code.name(), path.to_string_lossy(), id, ); @@ -874,11 +870,7 @@ mod tests { #[test_case(Rule::StarmapZip, Path::new("RUF058_2.py"))] fn map_strict_py314(rule_code: Rule, path: &Path) -> Result<()> { - let snapshot = format!( - "py314__{}_{}", - rule_code.noqa_code(), - path.to_string_lossy() - ); + let snapshot = format!("py314__{}_{}", rule_code.name(), path.to_string_lossy()); let diagnostics = test_path( Path::new("ruff").join(path).as_path(), &settings::LinterSettings::for_rule(rule_code) diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_RUF013_RUF013_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_implicit-optional_RUF013_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_RUF013_RUF013_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_implicit-optional_RUF013_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_RUF013_RUF013_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_implicit-optional_RUF013_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_RUF013_RUF013_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__PY39_implicit-optional_RUF013_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF030_RUF030.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__assert-with-print-message_RUF030.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF030_RUF030.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__assert-with-print-message_RUF030.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF018_RUF018.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__assignment-in-assert_RUF018.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF018_RUF018.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__assignment-in-assert_RUF018.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF006_RUF006.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__asyncio-dangling-task_RUF006.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF006_RUF006.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__asyncio-dangling-task_RUF006.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF053_RUF053.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__class-with-mixed-type-vars_RUF053.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF053_RUF053.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__class-with-mixed-type-vars_RUF053.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF005_RUF005.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__collection-literal-concatenation_RUF005.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF005_RUF005.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__collection-literal-concatenation_RUF005.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF005_RUF005_slices.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__collection-literal-concatenation_RUF005_slices.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF005_RUF005_slices.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__collection-literal-concatenation_RUF005_slices.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF052_RUF052_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__used-dummy-variable_RUF052_0.py_1.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF052_RUF052_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__used-dummy-variable_RUF052_0.py_1.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__RUF052_RUF052_0.py_2.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__used-dummy-variable_RUF052_0.py_2.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__RUF052_RUF052_0.py_2.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__used-dummy-variable_RUF052_0.py_2.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF049_RUF049.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__dataclass-enum_RUF049.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF049_RUF049.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__dataclass-enum_RUF049.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF032_RUF032.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__decimal-from-float-literal_RUF032.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF032_RUF032.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__decimal-from-float-literal_RUF032.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF026_RUF026.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__default-factory-kwarg_RUF026.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF026_RUF026.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__default-factory-kwarg_RUF026.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF068_RUF068.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__duplicate-entry-in-dunder-all_RUF068.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF068_RUF068.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__duplicate-entry-in-dunder-all_RUF068.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF010_RUF010.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__explicit-f-string-type-conversion_RUF010.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF010_RUF010.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__explicit-f-string-type-conversion_RUF010.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF056_RUF056.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__falsy-dict-get-fallback_RUF056.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF056_RUF056.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__falsy-dict-get-fallback_RUF056.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009_attrs.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_attrs.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009_attrs.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_attrs.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF008_RUF008_deferred.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_attrs_auto_attribs.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF008_RUF008_deferred.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_attrs_auto_attribs.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009_deferred.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_deferred.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009_deferred.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__function-call-in-dataclass-default-argument_RUF009_deferred.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF051_RUF051.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__if-key-in-dict-del_RUF051.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF051_RUF051.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__if-key-in-dict-del_RUF051.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009_attrs_auto_attribs.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF009_RUF009_attrs_auto_attribs.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_2.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_3.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_3.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_3.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_4.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_4.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_4.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__implicit-optional_RUF013_4.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF060_RUF060.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__in-empty-collection_RUF060.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF060_RUF060.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__in-empty-collection_RUF060.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF074_RUF074.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__incorrect-decorator-order_RUF074.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF074_RUF074.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__incorrect-decorator-order_RUF074.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF031_RUF031.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__incorrectly-parenthesized-tuple-in-subscript_RUF031.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF031_RUF031.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__incorrectly-parenthesized-tuple-in-subscript_RUF031.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF040_RUF040.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-assert-message-literal-argument_RUF040.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF040_RUF040.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-assert-message-literal-argument_RUF040.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF028_RUF028.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-formatter-suppression-comment_RUF028.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF028_RUF028.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-formatter-suppression-comment_RUF028.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF016_RUF016.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-index-type_RUF016.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF016_RUF016.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-index-type_RUF016.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_bleach.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_bleach.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_bleach.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_bleach.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_invalid_author.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_invalid_author.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_invalid_author.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_invalid_author.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF012_RUF012_deferred.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_maturin.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF012_RUF012_deferred.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_maturin.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_2.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_pep639.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF013_RUF013_2.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_pep639.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_various_invalid.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_various_invalid.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_various_invalid.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-pyproject-toml_various_invalid.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF102_RUF102.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-rule-code_RUF102.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF102_RUF102.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-rule-code_RUF102.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF027_RUF027_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-rule-code_RUF102_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF027_RUF027_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__invalid-rule-code_RUF102_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF061_RUF061_deprecated_call.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_deprecated_call.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF061_RUF061_deprecated_call.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_deprecated_call.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF061_RUF061_raises.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_raises.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF061_RUF061_raises.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_raises.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF061_RUF061_warns.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_warns.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF061_RUF061_warns.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__legacy-form-pytest-raises_RUF061_warns.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF065_RUF065_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__logging-eager-conversion_RUF065_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF065_RUF065_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__logging-eager-conversion_RUF065_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF065_RUF065_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__logging-eager-conversion_RUF065_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF065_RUF065_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__logging-eager-conversion_RUF065_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF048_RUF048.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__map-int-version-parsing_RUF048.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF048_RUF048.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__map-int-version-parsing_RUF048.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF048_RUF048_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__map-int-version-parsing_RUF048_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF048_RUF048_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__map-int-version-parsing_RUF048_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF027_RUF027_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF027_RUF027_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF027_RUF027_2.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF027_RUF027_2.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF067_RUF067__modules__okay.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF067_RUF067__modules__okay.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__missing-f-string-syntax_RUF027_2.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF012_RUF012.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-class-default_RUF012.py.snap similarity index 99% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF012_RUF012.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-class-default_RUF012.py.snap index fdd09af79c1c94..f36fb52b8a20be 100644 --- a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF012_RUF012.py.snap +++ b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-class-default_RUF012.py.snap @@ -1,6 +1,5 @@ --- source: crates/ruff_linter/src/rules/ruff/mod.rs -assertion_line: 133 --- RUF012 Mutable default value for class attribute --> RUF012.py:9:34 diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF102_RUF102_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-class-default_RUF012_deferred.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF102_RUF102_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-class-default_RUF012_deferred.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF008_RUF008.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF008_RUF008.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF008_RUF008_attrs.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008_attrs.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF008_RUF008_attrs.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008_attrs.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_maturin.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008_deferred.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_maturin.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-dataclass-default_RUF008_deferred.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF024_RUF024.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-fromkeys-value_RUF024.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF024_RUF024.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__mutable-fromkeys-value_RUF024.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_for.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_for.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_for.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_for.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_if.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_if.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_if.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_if.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_try.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_try.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_try.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_try.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_while.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_while.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF047_RUF047_while.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__needless-else_RUF047_while.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF020_RUF020.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__never-union_RUF020.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF020_RUF020.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__never-union_RUF020.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF067_RUF067__modules____init__.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__non-empty-init-module_RUF067__modules____init__.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF067_RUF067__modules____init__.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__non-empty-init-module_RUF067__modules____init__.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_pep639.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__non-empty-init-module_RUF067__modules__okay.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF200_pep639.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__non-empty-init-module_RUF067__modules__okay.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF064_RUF064.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__non-octal-permissions_RUF064.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF064_RUF064.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__non-octal-permissions_RUF064.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF036_RUF036.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__none-not-at-end-of-union_RUF036.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF036_RUF036.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__none-not-at-end-of-union_RUF036.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF036_RUF036.pyi.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__none-not-at-end-of-union_RUF036.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF036_RUF036.pyi.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__none-not-at-end-of-union_RUF036.pyi.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF021_RUF021.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__parenthesize-chained-operators_RUF021.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF021_RUF021.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__parenthesize-chained-operators_RUF021.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF033_RUF033.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__post-init-default_RUF033.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF033_RUF033.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__post-init-default_RUF033.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF073_RUF073.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__f-string-percent-format_RUF073.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF073_RUF073.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__f-string-percent-format_RUF073.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF069_RUF069.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__float-equality-comparison_RUF069.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF069_RUF069.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__float-equality-comparison_RUF069.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF045_RUF045.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__implicit-class-var-in-dataclass_RUF045.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF045_RUF045.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__implicit-class-var-in-dataclass_RUF045.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF054_RUF054.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__indented-form-feed_RUF054.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF054_RUF054.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__indented-form-feed_RUF054.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF008_RUF008.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__mutable-dataclass-default_RUF008.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF008_RUF008.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__mutable-dataclass-default_RUF008.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF008_RUF008_attrs.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__mutable-dataclass-default_RUF008_attrs.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF008_RUF008_attrs.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__mutable-dataclass-default_RUF008_attrs.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF071_RUF071.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__os-path-commonprefix_RUF071.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF071_RUF071.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__os-path-commonprefix_RUF071.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py37__RUF039_RUF039_py_version_sensitive.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py37__unraw-re-pattern_RUF039_py_version_sensitive.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py37__RUF039_RUF039_py_version_sensitive.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py37__unraw-re-pattern_RUF039_py_version_sensitive.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py38__RUF039_RUF039_py_version_sensitive.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py38__unraw-re-pattern_RUF039_py_version_sensitive.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py38__RUF039_RUF039_py_version_sensitive.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__py38__unraw-re-pattern_RUF039_py_version_sensitive.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF070_RUF070.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-assign-before-yield_RUF070.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF070_RUF070.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-assign-before-yield_RUF070.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_2.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_2.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_2.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_3.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF055_RUF055_3.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unnecessary-regular-expression_RUF055_3.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF039_RUF039.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unraw-re-pattern_RUF039.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF039_RUF039.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unraw-re-pattern_RUF039.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF039_RUF039_concat.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unraw-re-pattern_RUF039_concat.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF039_RUF039_concat.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__unraw-re-pattern_RUF039_concat.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF072_RUF072.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__useless-finally_RUF072.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__RUF072_RUF072.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__preview__useless-finally_RUF072.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF066_RUF066.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__property-without-return_RUF066.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF066_RUF066.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__property-without-return_RUF066.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__py314__RUF058_RUF058_2.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__py314__starmap-zip_RUF058_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__py314__RUF058_RUF058_2.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__py314__starmap-zip_RUF058_2.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF043_RUF043.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__pytest-raises-ambiguous-pattern_RUF043.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF043_RUF043.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__pytest-raises-ambiguous-pattern_RUF043.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF017_RUF017_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__quadratic-list-summation_RUF017_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF017_RUF017_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__quadratic-list-summation_RUF017_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF017_RUF017_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__quadratic-list-summation_RUF017_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF017_RUF017_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__quadratic-list-summation_RUF017_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF101_RUF101_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redirected-noqa_RUF101_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF101_RUF101_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redirected-noqa_RUF101_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF101_RUF101_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redirected-noqa_RUF101_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF101_RUF101_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redirected-noqa_RUF101_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF038_RUF038.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redundant-bool-literal_RUF038.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF038_RUF038.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redundant-bool-literal_RUF038.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF038_RUF038.pyi.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redundant-bool-literal_RUF038.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF038_RUF038.pyi.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__redundant-bool-literal_RUF038.pyi.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF058_RUF058_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__starmap-zip_RUF058_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF058_RUF058_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__starmap-zip_RUF058_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF058_RUF058_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__starmap-zip_RUF058_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF058_RUF058_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__starmap-zip_RUF058_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF046_RUF046.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF046_RUF046.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF046_RUF046_CR.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046_CR.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF046_RUF046_CR.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046_CR.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF046_RUF046_LF.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046_LF.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF046_RUF046_LF.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-cast-to-int_RUF046_LF.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF037_RUF037.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-empty-iterable-within-deque-call_RUF037.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF037_RUF037.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-empty-iterable-within-deque-call_RUF037.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF050_RUF050.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-if_RUF050.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF050_RUF050.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-if_RUF050.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF015_RUF015.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-iterable-allocation-for-first-element_RUF015.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF015_RUF015.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-iterable-allocation-for-first-element_RUF015.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF019_RUF019.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-key-check_RUF019.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF019_RUF019.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-key-check_RUF019.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF041_RUF041.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-nested-literal_RUF041.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF041_RUF041.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-nested-literal_RUF041.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF041_RUF041.pyi.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-nested-literal_RUF041.pyi.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF041_RUF041.pyi.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-nested-literal_RUF041.pyi.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF057_RUF057.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-round_RUF057.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF057_RUF057.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unnecessary-round_RUF057.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF022_RUF022.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unsorted-dunder-all_RUF022.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF022_RUF022.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unsorted-dunder-all_RUF022.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF023_RUF023.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unsorted-dunder-slots_RUF023.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF023_RUF023.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unsorted-dunder-slots_RUF023.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF029_RUF029.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-async_RUF029.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF029_RUF029.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-async_RUF029.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_0.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_0.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_2.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_2.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_2.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_2.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_3.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_3.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF059_RUF059_3.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__unused-unpacked-variable_RUF059_3.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__RUF052_RUF052_0.py_1.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__used-dummy-variable_RUF052_0.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__custom_dummy_var_regexp_preset__RUF052_RUF052_0.py_1.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__used-dummy-variable_RUF052_0.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF052_RUF052_1.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__used-dummy-variable_RUF052_1.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF052_RUF052_1.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__used-dummy-variable_RUF052_1.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF034_RUF034.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__useless-if-else_RUF034.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF034_RUF034.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__useless-if-else_RUF034.py.snap diff --git a/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF007_RUF007.py.snap b/crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__zip-instead-of-pairwise_RUF007.py.snap similarity index 100% rename from crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__RUF007_RUF007.py.snap rename to crates/ruff_linter/src/rules/ruff/snapshots/ruff_linter__rules__ruff__tests__zip-instead-of-pairwise_RUF007.py.snap diff --git a/crates/ruff_wasm/tests/api.rs b/crates/ruff_wasm/tests/api.rs index fd63457b9af812..1c829f6c6462bf 100644 --- a/crates/ruff_wasm/tests/api.rs +++ b/crates/ruff_wasm/tests/api.rs @@ -59,7 +59,7 @@ fn empty_config() { "if (1, 2):\n pass", r#"{}"#, [ExpandedMessage { - code: Rule::IfTuple.noqa_code().to_string(), + code: Rule::IfTuple.identifier().to_string(), message: "If test is a tuple, which is always `True`".to_string(), tags: vec![], annotations: vec![primary_annotation( From 54b79e9ec950be0c00afe23ab04cbc158ef412c0 Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Tue, 25 Aug 2026 15:43:29 -0400 Subject: [PATCH 3/8] Track applied fixes by diagnostic name --- Cargo.lock | 1 - crates/ruff/src/diagnostics.rs | 4 +-- crates/ruff/src/printer.rs | 25 +++++++-------- crates/ruff_linter/Cargo.toml | 1 - crates/ruff_linter/src/fix/mod.rs | 13 +++++--- crates/ruff_linter/src/linter.rs | 52 ++++++++++++++++++------------- crates/ruff_linter/src/toml.rs | 4 +-- 7 files changed, 54 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c2cc4d7dc47367..7b96ccf00b1c3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3371,7 +3371,6 @@ dependencies = [ "fern", "glob", "globset", - "hashbrown 0.17.1", "imperative", "insta", "is-macro", diff --git a/crates/ruff/src/diagnostics.rs b/crates/ruff/src/diagnostics.rs index f892eca98ff599..a9b0df7b494d06 100644 --- a/crates/ruff/src/diagnostics.rs +++ b/crates/ruff/src/diagnostics.rs @@ -169,9 +169,9 @@ impl AddAssign for FixMap { continue; } let fixed_in_file = self.0.entry(filename).or_default(); - for (rule, name, count) in fixed.iter() { + for (id, code, count) in fixed.iter() { if count > 0 { - *fixed_in_file.entry(rule).or_default(name) += count; + *fixed_in_file.entry(id).or_default(code) += count; } } } diff --git a/crates/ruff/src/printer.rs b/crates/ruff/src/printer.rs index bd8bcedbbf512e..8a06f2ac80ee4c 100644 --- a/crates/ruff/src/printer.rs +++ b/crates/ruff/src/printer.rs @@ -500,19 +500,18 @@ fn print_fix_summary( relativize_path(filename).bold(), ":".cyan() )?; - for (code, name, count) in table.iter().sorted_by_key(|(.., count)| Reverse(*count)) { - if is_human_readable_names_enabled(preview) && !prefer_rule_codes { - writeln!( - writer, - " {count:>num_digits$} × {name} ({code})", - name = name.to_string().red().bold(), - )?; - } else { - writeln!( - writer, - " {count:>num_digits$} × {code} ({name})", - code = code.to_string().red().bold(), - )?; + for (name, code, count) in table.iter().sorted_by_key(|(.., count)| Reverse(*count)) { + write!(writer, " {count:>num_digits$} × ")?; + match code { + Some(code) if is_human_readable_names_enabled(preview) && !prefer_rule_codes => { + writeln!(writer, "{name} ({code})", name = name.as_str().red().bold())?; + } + Some(code) => { + writeln!(writer, "{code} ({name})", code = code.as_str().red().bold())?; + } + None => { + writeln!(writer, "{name}", name = name.as_str().red().bold())?; + } } } } diff --git a/crates/ruff_linter/Cargo.toml b/crates/ruff_linter/Cargo.toml index edd69303ec94eb..1de23283b8f626 100644 --- a/crates/ruff_linter/Cargo.toml +++ b/crates/ruff_linter/Cargo.toml @@ -40,7 +40,6 @@ compact_str = { workspace = true } fern = { workspace = true } glob = { workspace = true } globset = { workspace = true } -hashbrown = { workspace = true } imperative = { workspace = true } is-macro = { workspace = true } itertools = { workspace = true } diff --git a/crates/ruff_linter/src/fix/mod.rs b/crates/ruff_linter/src/fix/mod.rs index e2672f2f37a97b..9309b745a82149 100644 --- a/crates/ruff_linter/src/fix/mod.rs +++ b/crates/ruff_linter/src/fix/mod.rs @@ -62,10 +62,13 @@ fn apply_fixes<'a>( let mut fixed = FixTable::default(); let mut source_map = SourceMap::default(); - for (code, name, fix) in diagnostics - .filter_map(|msg| msg.secondary_code().map(|code| (code, msg.name(), msg))) - .filter_map(|(code, name, diagnostic)| diagnostic.fix().map(|fix| (code, name, fix))) - .sorted_by(|(_, name1, fix1), (_, name2, fix2)| cmp_fix(name1, name2, fix1, fix2)) + for (id, code, fix) in diagnostics + .filter_map(|diagnostic| { + diagnostic + .fix() + .map(|fix| (diagnostic.id(), diagnostic.secondary_code(), fix)) + }) + .sorted_by(|(id1, _, fix1), (id2, _, fix2)| cmp_fix(id1.as_str(), id2.as_str(), fix1, fix2)) { let mut edits = fix .edits() @@ -110,7 +113,7 @@ fn apply_fixes<'a>( } applied.extend(applied_edits.drain(..)); - *fixed.entry(code).or_default(name) += 1; + *fixed.entry(id).or_default(code) += 1; } // Add the remaining content. diff --git a/crates/ruff_linter/src/linter.rs b/crates/ruff_linter/src/linter.rs index c04e3001af6b17..8f2c4deb768436 100644 --- a/crates/ruff_linter/src/linter.rs +++ b/crates/ruff_linter/src/linter.rs @@ -1,13 +1,14 @@ use std::borrow::Cow; +use std::collections::hash_map::Entry; use std::path::Path; use anyhow::{Result, anyhow}; use colored::Colorize; use itertools::Itertools; use ruff_python_parser::semantic_errors::SemanticSyntaxError; -use rustc_hash::FxBuildHasher; +use rustc_hash::FxHashMap; -use ruff_db::diagnostic::{Diagnostic, SecondaryCode}; +use ruff_db::diagnostic::{Diagnostic, DiagnosticId, SecondaryCode}; use ruff_notebook::Notebook; use ruff_python_ast::{ModModule, PySourceType, PythonVersion}; use ruff_python_codegen::Stylist; @@ -57,31 +58,35 @@ impl LinterResult { #[derive(Debug, Default, PartialEq)] struct FixCount { - rule_name: &'static str, + code: Option, count: usize, } -/// A mapping from a noqa code to the corresponding lint name and a count of applied fixes. +/// A mapping from a diagnostic's identifier to its optional noqa code and fix count. #[derive(Debug, Default, PartialEq)] -pub struct FixTable(hashbrown::HashMap); +pub struct FixTable(FxHashMap); impl FixTable { pub fn counts(&self) -> impl Iterator { self.0.values().map(|fc| fc.count) } - pub fn entry<'a>(&'a mut self, code: &'a SecondaryCode) -> FixTableEntry<'a> { - FixTableEntry(self.0.entry_ref(code)) + pub fn entry(&mut self, id: DiagnosticId) -> FixTableEntry<'_> { + FixTableEntry(self.0.entry(id)) } - pub fn iter(&self) -> impl Iterator { + pub fn iter(&self) -> impl Iterator, usize)> { self.0 .iter() - .map(|(code, FixCount { rule_name, count })| (code, *rule_name, *count)) + .map(|(id, FixCount { code, count })| (*id, code.as_ref(), *count)) } - fn keys(&self) -> impl Iterator { - self.0.keys() + /// Iterate over secondary codes, falling back to rule names for rules without codes. + fn identifiers(&self) -> impl Iterator { + self.0.iter().map(|(id, FixCount { code, .. })| { + code.as_ref() + .map_or_else(|| id.as_str(), SecondaryCode::as_str) + }) } pub fn is_empty(&self) -> bool { @@ -89,16 +94,14 @@ impl FixTable { } } -pub struct FixTableEntry<'a>( - hashbrown::hash_map::EntryRef<'a, 'a, SecondaryCode, SecondaryCode, FixCount, FxBuildHasher>, -); +pub struct FixTableEntry<'a>(Entry<'a, DiagnosticId, FixCount>); impl<'a> FixTableEntry<'a> { - pub fn or_default(self, rule_name: &'static str) -> &'a mut usize { + pub fn or_default(self, code: Option<&SecondaryCode>) -> &'a mut usize { &mut (self .0 - .or_insert(FixCount { - rule_name, + .or_insert_with(|| FixCount { + code: code.cloned(), count: 0, }) .count) @@ -627,7 +630,12 @@ pub fn lint_fix<'a>( // syntax error. Return the original code. if has_valid_syntax && has_no_syntax_errors { if let Some(error) = parsed.errors().first() { - report_fix_syntax_error(path, transformed.source_code(), error, fixed.keys()); + report_fix_syntax_error( + path, + transformed.source_code(), + error, + fixed.identifiers(), + ); return Err(anyhow!("Fix introduced a syntax error")); } } @@ -642,8 +650,8 @@ pub fn lint_fix<'a>( { if iterations < MAX_ITERATIONS { // Count the number of fixed errors. - for (rule, name, count) in applied.iter() { - *fixed.entry(rule).or_default(name) += count; + for (id, code, count) in applied.iter() { + *fixed.entry(id).or_default(code) += count; } transformed = Cow::Owned(transformed.updated(fixed_contents, &source_map)); @@ -682,7 +690,7 @@ pub(crate) fn report_failed_to_converge_error( transformed: &str, diagnostics: &[Diagnostic], ) { - let codes = collect_rule_codes(diagnostics.iter().filter_map(Diagnostic::secondary_code)); + let codes = collect_rule_codes(diagnostics.iter().map(Diagnostic::secondary_code_or_id)); if cfg!(debug_assertions) { eprintln!( "{}{} Failed to converge after {} iterations in `{}` with rule codes {}:---\n{}\n---", @@ -718,7 +726,7 @@ fn report_fix_syntax_error<'a>( path: &Path, transformed: &str, error: &ParseError, - rules: impl IntoIterator, + rules: impl IntoIterator, ) { let codes = collect_rule_codes(rules); if cfg!(debug_assertions) { diff --git a/crates/ruff_linter/src/toml.rs b/crates/ruff_linter/src/toml.rs index 4a0fa817eebdb3..8e5c5bb0cb8cae 100644 --- a/crates/ruff_linter/src/toml.rs +++ b/crates/ruff_linter/src/toml.rs @@ -77,8 +77,8 @@ pub fn lint_fix_toml<'a>( }; } - for (rule, name, count) in fixes.iter() { - *fixed.entry(rule).or_default(name) += count; + for (id, code, count) in fixes.iter() { + *fixed.entry(id).or_default(code) += count; } transformed = Cow::Owned(code); From 0b169277732bc4b3d076af6fc2830aed1aed9da4 Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Thu, 27 Aug 2026 08:58:30 -0400 Subject: [PATCH 4/8] Support lint rules without legacy codes share initial count writing group by name in write_statistics use rule name in generate_docs simplify issue search query when code is unavailable expect noqa codes for linter-based rules remove Rule::identifier --- crates/ruff/src/commands/format.rs | 3 +- crates/ruff/src/commands/rule.rs | 35 +++--- crates/ruff/src/printer.rs | 8 +- crates/ruff_dev/src/generate_default_rules.rs | 4 +- crates/ruff_dev/src/generate_docs.rs | 32 +++--- crates/ruff_dev/src/generate_rules_table.rs | 42 +++++-- crates/ruff_linter/src/checkers/noqa.rs | 51 ++++----- crates/ruff_linter/src/codes.rs | 1 - crates/ruff_linter/src/message/mod.rs | 4 +- crates/ruff_linter/src/message/sarif.rs | 2 +- crates/ruff_linter/src/noqa.rs | 44 ++++--- crates/ruff_linter/src/registry.rs | 49 ++++++-- crates/ruff_linter/src/registry/rule_set.rs | 3 +- crates/ruff_linter/src/rule_redirects.rs | 6 +- crates/ruff_linter/src/rule_selector.rs | 35 ++++-- .../src/rules/ruff/rules/noqa_comments.rs | 4 +- crates/ruff_linter/src/suppression.rs | 7 +- crates/ruff_linter/src/test.rs | 9 +- crates/ruff_macros/src/map_codes.rs | 107 ++++++++++++------ crates/ruff_server/src/lint.rs | 2 + .../src/server/api/requests/hover.rs | 24 ++-- crates/ruff_wasm/tests/api.rs | 2 +- .../ruff-ecosystem/ruff_ecosystem/projects.py | 20 ++-- scripts/generate_mkdocs.py | 35 +++--- 24 files changed, 334 insertions(+), 195 deletions(-) diff --git a/crates/ruff/src/commands/format.rs b/crates/ruff/src/commands/format.rs index 27d045291a02b3..a6c10f3a18e609 100644 --- a/crates/ruff/src/commands/format.rs +++ b/crates/ruff/src/commands/format.rs @@ -1096,6 +1096,7 @@ pub(super) fn warn_incompatible_formatter_settings(resolver: &Resolver) { // The formatter always removes blank lines before the docstring. Rule::IncorrectBlankLineBeforeClass, ] { + debug_assert!(rule.noqa_code().is_some()); if setting.linter.rules.enabled(rule) { incompatible_rules.insert(rule); } @@ -1105,7 +1106,7 @@ pub(super) fn warn_incompatible_formatter_settings(resolver: &Resolver) { if !incompatible_rules.is_empty() { let mut rule_names: Vec<_> = incompatible_rules .into_iter() - .map(|rule| format!("`{}`", rule.noqa_code())) + .map(|rule| format!("`{}`", rule.noqa_code().unwrap())) .collect(); rule_names.sort(); if let [rule] = rule_names.as_slice() { diff --git a/crates/ruff/src/commands/rule.rs b/crates/ruff/src/commands/rule.rs index 10907d260a6021..835dc3e2b8017d 100644 --- a/crates/ruff/src/commands/rule.rs +++ b/crates/ruff/src/commands/rule.rs @@ -15,8 +15,8 @@ use crate::args::HelpFormat; #[derive(Serialize)] struct Explanation<'a> { name: &'a str, - code: String, - linter: &'a str, + code: Option, + linter: Option<&'a str>, summary: &'a str, message_formats: &'a [&'a str], fix: String, @@ -31,13 +31,16 @@ struct Explanation<'a> { impl<'a> Explanation<'a> { fn from_rule(rule: &'a Rule) -> Self { - let code = rule.noqa_code().to_string(); - let (linter, _) = Linter::parse_code(&code).unwrap(); + let code = rule.noqa_code().map(|code| code.to_string()); + let linter = code + .as_deref() + .and_then(Linter::parse_code) + .map(|(linter, _)| linter.name()); let fix = rule.fixable().to_string(); Self { name: rule.name().as_str(), code, - linter: linter.name(), + linter, summary: rule.message_formats()[0], message_formats: rule.message_formats(), fix, @@ -56,18 +59,22 @@ impl<'a> Explanation<'a> { fn format_rule_text(rule: Rule) -> String { let mut output = String::new(); - let _ = write!(&mut output, "# {} ({})", rule.name(), rule.noqa_code()); + let _ = write!(&mut output, "# {}", rule.name_and_code()); output.push('\n'); output.push('\n'); - let (linter, _) = Linter::parse_code(&rule.noqa_code().to_string()).unwrap(); - let _ = write!( - &mut output, - "Derived from the **{}** linter.", - linter.name() - ); - output.push('\n'); - output.push('\n'); + if let Some(linter) = rule + .noqa_code() + .and_then(|code| Linter::parse_code(&code.to_string()).map(|(linter, _)| linter)) + { + let _ = write!( + &mut output, + "Derived from the **{}** linter.", + linter.name() + ); + output.push('\n'); + output.push('\n'); + } let fix_availability = rule.fixable(); if matches!( diff --git a/crates/ruff/src/printer.rs b/crates/ruff/src/printer.rs index 8a06f2ac80ee4c..e9e5c88a50c370 100644 --- a/crates/ruff/src/printer.rs +++ b/crates/ruff/src/printer.rs @@ -52,7 +52,7 @@ impl ExpandedStatistics<'_> { } } -/// Accumulator type for grouping diagnostics by code. +/// Accumulator type for grouping diagnostics by code or rule name. /// Format: (`code`, `representative_diagnostic`, `total_count`, `fixable_count`) type DiagnosticGroup<'a> = (Option<&'a SecondaryCode>, &'a Diagnostic, usize, usize); @@ -280,15 +280,15 @@ impl Printer { let statistics: Vec = diagnostics .inner .iter() - .sorted_by_key(|diagnostic| diagnostic.secondary_code()) + .sorted_by_key(|diagnostic| diagnostic.name()) .fold(vec![], |mut acc: Vec, diagnostic| { let is_fixable = diagnostic .fix() .is_some_and(|fix| fix.applies(required_applicability)); let code = diagnostic.secondary_code(); - if let Some((prev_code, _prev_message, count, fixable_count)) = acc.last_mut() { - if *prev_code == code { + if let Some((_prev_code, prev_message, count, fixable_count)) = acc.last_mut() { + if prev_message.name() == diagnostic.name() { *count += 1; if is_fixable { *fixable_count += 1; diff --git a/crates/ruff_dev/src/generate_default_rules.rs b/crates/ruff_dev/src/generate_default_rules.rs index 4b2c4f0ce0b71b..28c437c524396d 100644 --- a/crates/ruff_dev/src/generate_default_rules.rs +++ b/crates/ruff_dev/src/generate_default_rules.rs @@ -35,7 +35,7 @@ pub(crate) fn generate() -> String { output.push_str(" select = [\n"); for (_, rules) in &linters { for rule in rules { - let _ = writeln!(output, " \"{}\",", rule.noqa_code()); + let _ = writeln!(output, " \"{}\",", rule.noqa_code().unwrap()); } } output.push_str(" ]\n"); @@ -56,7 +56,7 @@ pub(crate) fn generate() -> String { for rule in rules { let name = rule.name(); - let code = rule.noqa_code(); + let code = rule.noqa_code().unwrap(); let _ = writeln!(output, "- [`{name}`](rules/{name}.md) (`{code}`)"); } output.push('\n'); diff --git a/crates/ruff_dev/src/generate_docs.rs b/crates/ruff_dev/src/generate_docs.rs index 77bfc436d5874c..05efc52fbe5b74 100644 --- a/crates/ruff_dev/src/generate_docs.rs +++ b/crates/ruff_dev/src/generate_docs.rs @@ -30,7 +30,7 @@ pub(crate) fn main(args: &Args) -> Result<()> { if let Some(explanation) = rule.explanation() { let mut output = String::new(); - let _ = writeln!(&mut output, "# {} ({})", rule.name(), rule.noqa_code()); + let _ = writeln!(&mut output, "# {}", rule.name_and_code()); let status_text = match rule.status() { RuleStatus::Stable { since } => { @@ -55,26 +55,36 @@ pub(crate) fn main(args: &Args) -> Result<()> { } }; + let issue_search = format!( + "(%27{encoded_name}%27{code})", + encoded_name = + url::form_urlencoded::byte_serialize(rule.name().as_str().as_bytes()) + .collect::(), + code = rule + .noqa_code() + .map(|code| format!("%20OR%20{code}")) + .unwrap_or_default(), + ); + let _ = writeln!( &mut output, r#" {status_text} · -Related issues · +Related issues · View source "#, - encoded_name = - url::form_urlencoded::byte_serialize(rule.name().as_str().as_bytes()) - .collect::(), - rule_code = rule.noqa_code(), file = url::form_urlencoded::byte_serialize(rule.file().replace('\\', "/").as_bytes()) .collect::(), line = rule.line(), ); - let (linter, _) = Linter::parse_code(&rule.noqa_code().to_string()).unwrap(); - if linter.url().is_some() { + if let Some(linter) = rule + .noqa_code() + .and_then(|code| Linter::parse_code(&code.to_string()).map(|(linter, _)| linter)) + .filter(|linter| linter.url().is_some()) + { let common_prefix: String = match linter.common_prefix() { "" => linter .upstream_categories() @@ -134,11 +144,7 @@ pub(crate) fn main(args: &Args) -> Result<()> { output.push('\n'); } - process_documentation( - explanation.trim(), - &mut output, - &rule.noqa_code().to_string(), - ); + process_documentation(explanation.trim(), &mut output, rule.name().as_str()); let filename = PathBuf::from(ROOT_DIR) .join("docs") diff --git a/crates/ruff_dev/src/generate_rules_table.rs b/crates/ruff_dev/src/generate_rules_table.rs index 927350fe39a695..0cd936c0827d5a 100644 --- a/crates/ruff_dev/src/generate_rules_table.rs +++ b/crates/ruff_dev/src/generate_rules_table.rs @@ -31,12 +31,18 @@ const SYMBOLS_CONTAINER: &str = "style='display: flex; gap: 0.5rem; justify-cont fn generate_table( table_out: &mut String, rules: impl IntoIterator, - linter: &Linter, + linter: Option<&Linter>, default_rules: &RuleTable, ) { - table_out.push_str("| Code { scope='col' } | Name { scope='col' } | Message { scope='col' } | Status/Fix/Default { scope='col' .sr-only } |"); + if linter.is_some() { + table_out.push_str("| Code { scope='col' } "); + } + table_out.push_str("| Name { scope='col' } | Message { scope='col' } | Status/Fix/Default { scope='col' .sr-only } |"); table_out.push('\n'); - table_out.push_str("| ---- | ---- | ------- | -: |"); + if linter.is_some() { + table_out.push_str("| ---- "); + } + table_out.push_str("| ---- | ------- | -: |"); table_out.push('\n'); for rule in rules { let status_token = match rule.status() { @@ -102,12 +108,19 @@ fn generate_table( se = ""; } + if let Some(linter) = linter { + let _ = write!( + table_out, + "| {ss}{prefix}{code}{se} {{ #{prefix}{code} }} ", + prefix = linter.common_prefix(), + code = linter.code_for_rule(rule).unwrap(), + ); + } + #[expect(clippy::or_fun_call)] let _ = write!( table_out, - "| {ss}{prefix}{code}{se} {{ #{prefix}{code} }} | {ss}{explanation}{se} | {ss}{message}{se} |
{status_token}{fix_token}{default_token}
|", - prefix = linter.common_prefix(), - code = linter.code_for_rule(rule).unwrap(), + "| {ss}{explanation}{se} | {ss}{message}{se} |
{status_token}{fix_token}{default_token}
|", explanation = rule .explanation() .is_some() @@ -245,12 +258,25 @@ pub(crate) fn generate() -> String { } table_out.push('\n'); table_out.push('\n'); - generate_table(&mut table_out, rules.clone(), &linter, &default_rules); + generate_table(&mut table_out, rules.clone(), Some(&linter), &default_rules); } } else { - generate_table(&mut table_out, linter.all_rules(), &linter, &default_rules); + generate_table( + &mut table_out, + linter.all_rules(), + Some(&linter), + &default_rules, + ); } } + let mut codeless_rules = Rule::iter() + .filter(|rule| rule.noqa_code().is_none()) + .peekable(); + if codeless_rules.peek().is_some() { + table_out.push_str("### Rules without codes\n\n"); + generate_table(&mut table_out, codeless_rules, None, &default_rules); + } + table_out } diff --git a/crates/ruff_linter/src/checkers/noqa.rs b/crates/ruff_linter/src/checkers/noqa.rs index 8de18382a77ede..b3de9859a9831d 100644 --- a/crates/ruff_linter/src/checkers/noqa.rs +++ b/crates/ruff_linter/src/checkers/noqa.rs @@ -57,17 +57,17 @@ pub(crate) fn check_noqa( // Remove any ignored diagnostics. 'outer: for (index, diagnostic) in context.iter().enumerate() { - // Can't ignore syntax errors. - let Some(code) = diagnostic.secondary_code() else { + // Syntax errors and other non-lint diagnostics cannot be suppressed. + let Some(name) = diagnostic.id().as_lint() else { continue; }; - if *code == Rule::BlanketNOQA.noqa_code() { + if name == Rule::BlanketNOQA.name() { continue; } // Apply file-level suppressions first - if exemption.contains_secondary_code(code) { + if exemption.includes_name(name) { ignored_diagnostics.push(index); continue; } @@ -90,31 +90,15 @@ pub(crate) fn check_noqa( if let Some(directive_line) = noqa_directives.find_line_with_directive_mut(noqa_offset) { let suppressed = match &directive_line.directive { - Directive::All(_) => { - let Ok(rule) = Rule::from_code(code) else { - debug_assert!(false, "Invalid secondary code `{code}`"); - continue; - }; - directive_line.matches.push(rule); - ignored_diagnostics.push(index); - true - } - Directive::Codes(directive) => { - if directive.includes(code) { - let Ok(rule) = Rule::from_code(code) else { - debug_assert!(false, "Invalid secondary code `{code}`"); - continue; - }; - directive_line.matches.push(rule); - ignored_diagnostics.push(index); - true - } else { - false - } - } + Directive::All(_) => true, + Directive::Codes(directive) => diagnostic + .secondary_code() + .is_some_and(|code| directive.includes(code)), }; - if suppressed { + if suppressed && let Ok(rule) = Rule::from_name(name.as_str()) { + directive_line.matches.push(rule); + ignored_diagnostics.push(index); continue 'outer; } } @@ -176,7 +160,10 @@ pub(crate) fn check_noqa( for original_code in codes.iter().map(Code::as_str) { let code = get_redirect_target(original_code).unwrap_or(original_code); if seen_codes.insert(original_code) { - if Rule::UnusedNOQA.noqa_code() == code { + if Rule::UnusedNOQA + .noqa_code() + .is_some_and(|noqa_code| noqa_code == code) + { self_ignore = true; if context.is_rule_enabled(Rule::UnusedNOQA) { valid_codes.push(original_code); @@ -187,7 +174,9 @@ pub(crate) fn check_noqa( } if context.is_rule_enabled(Rule::NoqaComments) - && Rule::NoqaComments.noqa_code() == code + && Rule::NoqaComments + .noqa_code() + .is_some_and(|noqa_code| noqa_code == code) { suppress_noqa_comment = true; valid_codes.push(original_code); @@ -199,7 +188,9 @@ pub(crate) fn check_noqa( diag.secondary_code().is_some_and(|noqa| *noqa == code) }) } else { - matches.iter().any(|match_| match_.noqa_code() == code) + matches.iter().any(|rule| { + rule.noqa_code().is_some_and(|noqa_code| noqa_code == code) + }) } || settings .external .iter() diff --git a/crates/ruff_linter/src/codes.rs b/crates/ruff_linter/src/codes.rs index 2e8ab4f47506ee..6bc8895ada36e3 100644 --- a/crates/ruff_linter/src/codes.rs +++ b/crates/ruff_linter/src/codes.rs @@ -1098,7 +1098,6 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleStatus, Rule)> { (Flake8UsePathlib, "124") => rules::flake8_use_pathlib::violations::PyPath, (Flake8UsePathlib, "201") => rules::flake8_use_pathlib::rules::PathConstructorCurrentDirectory, (Flake8UsePathlib, "202") => rules::flake8_use_pathlib::rules::OsPathGetsize, - (Flake8UsePathlib, "202") => rules::flake8_use_pathlib::rules::OsPathGetsize, (Flake8UsePathlib, "203") => rules::flake8_use_pathlib::rules::OsPathGetatime, (Flake8UsePathlib, "204") => rules::flake8_use_pathlib::rules::OsPathGetmtime, (Flake8UsePathlib, "205") => rules::flake8_use_pathlib::rules::OsPathGetctime, diff --git a/crates/ruff_linter/src/message/mod.rs b/crates/ruff_linter/src/message/mod.rs index 72e6a50ab2a7b8..55cb3e6ad43e11 100644 --- a/crates/ruff_linter/src/message/mod.rs +++ b/crates/ruff_linter/src/message/mod.rs @@ -125,7 +125,9 @@ where diagnostic.set_noqa_offset(noqa_offset); } - diagnostic.set_secondary_code(SecondaryCode::new(rule.noqa_code().to_string())); + if let Some(code) = rule.noqa_code() { + diagnostic.set_secondary_code(SecondaryCode::new(code.to_string())); + } diagnostic.set_documentation_url(rule.url()); diagnostic diff --git a/crates/ruff_linter/src/message/sarif.rs b/crates/ruff_linter/src/message/sarif.rs index 0af6e30548a490..0fe21bd9967076 100644 --- a/crates/ruff_linter/src/message/sarif.rs +++ b/crates/ruff_linter/src/message/sarif.rs @@ -136,7 +136,7 @@ impl<'a> From<(&'a str, SarifLevel)> for SarifRule<'a> { Some((linter, suffix)) => { let rule = linter .all_rules() - .find(|rule| rule.noqa_code().suffix() == suffix) + .find(|rule| rule.noqa_code().is_some_and(|code| code.suffix() == suffix)) .expect("Expected a valid noqa code corresponding to a rule"); (Some(linter.name()), rule) } diff --git a/crates/ruff_linter/src/noqa.rs b/crates/ruff_linter/src/noqa.rs index 27b162671fbce3..db246d56cd88c0 100644 --- a/crates/ruff_linter/src/noqa.rs +++ b/crates/ruff_linter/src/noqa.rs @@ -9,7 +9,7 @@ use anyhow::Result; use itertools::Itertools; use log::warn; -use ruff_db::diagnostic::{Diagnostic, SecondaryCode}; +use ruff_db::diagnostic::{Diagnostic, LintName}; use ruff_python_trivia::PythonWhitespace; use ruff_python_trivia::{CommentRanges, Cursor, indentation_at_offset}; use ruff_source_file::{LineEnding, LineRanges}; @@ -24,6 +24,7 @@ use crate::registry::Rule; use crate::rule_redirects::get_redirect_target; use crate::settings::types::PreviewMode; use crate::suppression::{self, Suppressions}; +use crate::warn_user_once; /// Generates an array of edits that matches the length of `diagnostics`. /// Each potential edit in the array is paired, in order, with the associated diagnostic. @@ -169,7 +170,7 @@ pub(crate) fn rule_is_ignored( Ok(Some(NoqaLexerOutput { directive: Directive::Codes(codes), .. - })) => codes.includes(&code.noqa_code()), + })) => code.noqa_code().is_some_and(|code| codes.includes(&code)), _ => false, } } @@ -184,19 +185,19 @@ pub(crate) enum FileExemption { } impl FileExemption { - /// Returns `true` if the file is exempt from the given rule, as identified by its noqa code. - pub(crate) fn contains_secondary_code(&self, needle: &SecondaryCode) -> bool { + /// Returns `true` if the file is exempt from the given rule. + pub(crate) fn includes(&self, needle: Rule) -> bool { match self { FileExemption::All(_) => true, - FileExemption::Codes(codes) => codes.iter().any(|code| *needle == code.noqa_code()), + FileExemption::Codes(codes) => codes.contains(&needle), } } - /// Returns `true` if the file is exempt from the given rule. - pub(crate) fn includes(&self, needle: Rule) -> bool { + /// Returns `true` if the file is exempt from the rule with the given name. + pub(crate) fn includes_name(&self, needle: LintName) -> bool { match self { FileExemption::All(_) => true, - FileExemption::Codes(codes) => codes.contains(&needle), + FileExemption::Codes(rules) => rules.iter().any(|rule| rule.name() == needle), } } @@ -969,12 +970,12 @@ fn find_suppression_comments<'a>( // Mark any non-ignored diagnostics. for message in diagnostics { - let Some(code) = message.secondary_code() else { + let Some(name) = message.id().as_lint() else { comments_by_line.push(None); continue; }; - if exemption.contains_secondary_code(code) { + if exemption.includes_name(name) { comments_by_line.push(None); continue; } @@ -996,7 +997,10 @@ fn find_suppression_comments<'a>( continue; } Directive::Codes(codes) => { - if codes.includes(code) { + if message + .secondary_code() + .is_some_and(|code| codes.includes(code)) + { comments_by_line.push(None); continue; } @@ -1019,7 +1023,10 @@ fn find_suppression_comments<'a>( continue; } Directive::Codes(codes) => { - if codes.includes(code) { + if message + .secondary_code() + .is_some_and(|code| codes.includes(code)) + { comments_by_line.push(None); continue; } @@ -1039,9 +1046,18 @@ fn find_suppression_comments<'a>( }; let identifier = match suppression_kind { - SuppressionKind::Noqa => code.as_str(), SuppressionKind::Ignore if is_human_readable_names_enabled(preview) => message.name(), - SuppressionKind::Ignore => code.as_str(), + SuppressionKind::Ignore => message.secondary_code_or_id(), + SuppressionKind::Noqa => { + let Some(code) = message.secondary_code() else { + warn_user_once!( + "Cannot add `noqa` comments for rules without codes; use `--add-ignore` instead." + ); + comments_by_line.push(None); + continue; + }; + code.as_str() + } }; comments_by_line.push(Some(SuppressionComment { diff --git a/crates/ruff_linter/src/registry.rs b/crates/ruff_linter/src/registry.rs index 83b0b2c9d7a4d0..ac2beee94de111 100644 --- a/crates/ruff_linter/src/registry.rs +++ b/crates/ruff_linter/src/registry.rs @@ -17,7 +17,10 @@ impl Rule { let (linter, code) = Linter::parse_code(code).ok_or(FromCodeError::Unknown)?; linter .all_rules() - .find(|rule| rule.noqa_code().suffix() == code) + .find(|rule| { + rule.noqa_code() + .is_some_and(|rule_code| rule_code.suffix() == code) + }) .ok_or(FromCodeError::Unknown) } } @@ -363,6 +366,24 @@ impl Rule { let name: &'static str = self.into(); LintName::of(name) } + + /// Return the rule's name, followed by its code in parentheses when available. + /// + /// For example: + /// + /// ```text + /// unused-import (F401) + /// ``` + pub fn name_and_code(&self) -> impl std::fmt::Display + use<> { + let rule = *self; + std::fmt::from_fn(move |f| { + write!(f, "{}", rule.name())?; + if let Some(code) = rule.noqa_code() { + write!(f, " ({code})")?; + } + Ok(()) + }) + } } /// Pairs of checks that shouldn't be enabled together. @@ -397,12 +418,17 @@ pub mod clap_completion { impl RuleParser { fn values() -> impl Iterator { Rule::iter().flat_map(|rule| { - let code = rule.noqa_code().to_string(); let name = rule.name().as_str(); - [ - PossibleValue::new(&code).help(name), - PossibleValue::new(name).help(code), - ] + let (code, name) = if let Some(code) = rule.noqa_code() { + let code = code.to_string(); + ( + Some(PossibleValue::new(&code).help(name)), + PossibleValue::new(name).help(code), + ) + } else { + (None, PossibleValue::new(name)) + }; + code.into_iter().chain(std::iter::once(name)) }) } } @@ -484,8 +510,12 @@ mod tests { #[test] fn check_code_serialization() { for rule in Rule::iter() { + let Some(code) = rule.noqa_code() else { + continue; + }; + assert!( - Rule::from_code(&format!("{}", rule.noqa_code())).is_ok(), + Rule::from_code(&code.to_string()).is_ok(), "{rule:?} could not be round-trip serialized." ); } @@ -494,7 +524,10 @@ mod tests { #[test] fn linter_parse_code() { for rule in Rule::iter() { - let code = format!("{}", rule.noqa_code()); + let Some(code) = rule.noqa_code() else { + continue; + }; + let code = code.to_string(); let (linter, rest) = Linter::parse_code(&code).unwrap_or_else(|| panic!("couldn't parse {code:?}")); assert_eq!(code, format!("{}{rest}", linter.common_prefix())); diff --git a/crates/ruff_linter/src/registry/rule_set.rs b/crates/ruff_linter/src/registry/rule_set.rs index bd785d463e56b9..c530eaeefdab5c 100644 --- a/crates/ruff_linter/src/registry/rule_set.rs +++ b/crates/ruff_linter/src/registry/rule_set.rs @@ -298,8 +298,7 @@ impl Display for RuleSet { } else { writeln!(f, "[")?; for rule in self { - let code = rule.noqa_code(); - writeln!(f, "\t{name} ({code}),", name = rule.name())?; + writeln!(f, "\t{},", rule.name_and_code())?; } write!(f, "]")?; } diff --git a/crates/ruff_linter/src/rule_redirects.rs b/crates/ruff_linter/src/rule_redirects.rs index e13a2939e15878..2d680d305f7fb6 100644 --- a/crates/ruff_linter/src/rule_redirects.rs +++ b/crates/ruff_linter/src/rule_redirects.rs @@ -148,9 +148,11 @@ mod tests { #[test] fn overshadowing_redirects() { for rule in Rule::iter() { - let (code, status) = (rule.noqa_code(), rule.status()); + let Some(code) = rule.noqa_code() else { + continue; + }; - if matches!(status, RuleStatus::Removed { .. }) { + if matches!(rule.status(), RuleStatus::Removed { .. }) { continue; } diff --git a/crates/ruff_linter/src/rule_selector.rs b/crates/ruff_linter/src/rule_selector.rs index 71f3bf15ee65ce..3ec7b4ffb0a847 100644 --- a/crates/ruff_linter/src/rule_selector.rs +++ b/crates/ruff_linter/src/rule_selector.rs @@ -7,7 +7,7 @@ use strum_macros::EnumIter; use ruff_ranged_value::{RangedValue, ValueSource}; -use crate::codes::{Category, RuleCodePrefix, RuleIter, RuleStatus}; +use crate::codes::{Category, NoqaCode, RuleCodePrefix, RuleIter, RuleStatus}; use crate::preview::{is_human_readable_names_enabled, is_rule_categories_enabled}; use crate::registry::{Linter, Rule, RuleNamespace}; use crate::rule_redirects::get_redirect; @@ -243,7 +243,9 @@ impl RuleCodePrefix { } // The rule must match the selector exactly. - (rule.noqa_code().suffix() == self.short_code()).then_some(rule) + rule.noqa_code() + .is_some_and(|code| code.suffix() == self.short_code()) + .then_some(rule) } } @@ -265,7 +267,9 @@ impl RuleSelector { RuleSelector::Prefix { prefix, .. } => { (prefix.linter().common_prefix(), prefix.short_code()) } - RuleSelector::Rule { rule, .. } => rule.noqa_code().into_parts(), + RuleSelector::Rule { rule, .. } => rule + .noqa_code() + .map_or_else(|| ("", rule.name().as_str()), NoqaCode::into_parts), RuleSelector::Linter(l) => (l.common_prefix(), ""), } } @@ -396,6 +400,11 @@ mod schema { (!prefix.is_empty()).then(|| prefix.to_string()) })), ) + .chain( + Rule::iter() + .filter(|rule| !rule.is_removed()) + .map(|rule| rule.name().to_string()), + ) .filter(|p| { // Exclude removed rules and prefixes where all of the rules are removed match RuleSelector::parse_no_redirect(p) { @@ -410,18 +419,16 @@ mod schema { // Filter out all test-only rules #[cfg(any(feature = "test-rules", test))] #[expect(clippy::used_underscore_binding)] - if _rule.starts_with("RUF9") || _rule == "PLW0101" { + if _rule.starts_with("RUF9") + || _rule == "PLW0101" + || Rule::from_name(_rule) + .is_ok_and(|rule| matches!(rule.category(), Category::Testing)) + { return false; } true }) - .flat_map(|code| { - Rule::from_code(&code) - .map(|rule| rule.name().to_string()) - .into_iter() - .chain(std::iter::once(code)) - }) .sorted() .collect(); @@ -584,8 +591,12 @@ pub mod clap_completion { None })) .chain(Rule::iter().map(|rule| { - PossibleValue::new(rule.name().as_str()) - .help(rule.noqa_code().to_string()) + let value = PossibleValue::new(rule.name().as_str()); + if let Some(code) = rule.noqa_code() { + value.help(code.to_string()) + } else { + value + } })) .chain(Category::iter().map(|category| { PossibleValue::new(category.into_str()).help(category.description()) diff --git a/crates/ruff_linter/src/rules/ruff/rules/noqa_comments.rs b/crates/ruff_linter/src/rules/ruff/rules/noqa_comments.rs index edcce65e2f5350..b46c887f68a360 100644 --- a/crates/ruff_linter/src/rules/ruff/rules/noqa_comments.rs +++ b/crates/ruff_linter/src/rules/ruff/rules/noqa_comments.rs @@ -192,7 +192,9 @@ impl std::fmt::Display for Codes<'_> { "{}", rules .iter() - .map(Rule::noqa_code) + .map(|rule| rule + .noqa_code() + .map_or_else(|| rule.name().to_string(), |code| code.to_string())) .sorted() .dedup() .join(", ") diff --git a/crates/ruff_linter/src/suppression.rs b/crates/ruff_linter/src/suppression.rs index 6c5853d5e29b85..1161d4ac9b1248 100644 --- a/crates/ruff_linter/src/suppression.rs +++ b/crates/ruff_linter/src/suppression.rs @@ -361,7 +361,12 @@ impl Suppressions { range: TextRange, parent: Option, ) -> bool { - self.check_suppression(Some(&rule.noqa_code()), rule.name().as_str(), range, parent) + self.check_suppression( + rule.noqa_code().as_ref(), + rule.name().as_str(), + range, + parent, + ) } /// Check whether the given rule code or name corresponds to a valid suppression comment at diff --git a/crates/ruff_linter/src/test.rs b/crates/ruff_linter/src/test.rs index 35e4cc60d2edba..08a9607b64d09b 100644 --- a/crates/ruff_linter/src/test.rs +++ b/crates/ruff_linter/src/test.rs @@ -378,9 +378,12 @@ Source with applied fixes: let messages = messages .into_iter() - .filter_map(|msg| Some((msg.secondary_code()?.to_string(), msg))) - .map(|(code, mut diagnostic)| { - let rule = Rule::from_code(&code).unwrap(); + .filter_map(|diagnostic| { + Rule::from_name(diagnostic.name()) + .ok() + .map(|rule| (rule, diagnostic)) + }) + .map(|(rule, mut diagnostic)| { let fixable = diagnostic.fix().is_some_and(|fix| { matches!( fix.applicability(), diff --git a/crates/ruff_macros/src/map_codes.rs b/crates/ruff_macros/src/map_codes.rs index 139993762fcd04..1fc23f5e2749f0 100644 --- a/crates/ruff_macros/src/map_codes.rs +++ b/crates/ruff_macros/src/map_codes.rs @@ -19,10 +19,8 @@ use crate::{ struct Rule { /// The actual name of the rule, e.g., `NoIndentedBlock`. name: Ident, - /// The linter associated with the rule, e.g., `Pycodestyle`. - linter: Ident, - /// The code associated with the rule, e.g., `"E112"`. - code: LitStr, + /// The linter and code associated with the rule, if any. + code: Option, /// The path to the struct implementing the rule, e.g. /// `rules::pycodestyle::rules::logical_lines::NoIndentedBlock` path: Path, @@ -30,6 +28,14 @@ struct Rule { attrs: Vec, } +#[derive(Clone)] +struct LinterCode { + /// The linter associated with the rule, e.g., `Pycodestyle`. + linter: Ident, + /// The code associated with the rule, e.g., `"E112"`. + code: LitStr, +} + pub(crate) fn map_codes(func: &ItemFn) -> syn::Result { let Some(last_stmt) = func.block.stmts.last() else { return Err(Error::new( @@ -58,25 +64,38 @@ pub(crate) fn map_codes(func: &ItemFn) -> syn::Result { )); }; - // Map from: linter (e.g., `Flake8Bugbear`) to rule code (e.g.,`"002"`) to rule data. - let mut linter_to_rules: BTreeMap> = BTreeMap::new(); - + let mut rules = Vec::new(); for arm in arms { if matches!(arm.pat, Pat::Wild(..)) { break; } - let rule = syn::parse::(arm.into_token_stream().into())?; - linter_to_rules - .entry(rule.linter.clone()) - .or_default() - .insert(rule.code.value(), rule); + rules.push(syn::parse::(arm.into_token_stream().into())?); + } + + rules.sort_by_cached_key(|rule| { + ( + rule.code.is_none(), + rule.code + .as_ref() + .map(|code| (code.linter.clone(), code.code.value())), + ) + }); + + // Map from: linter (e.g., `Flake8Bugbear`) to rule code (e.g.,`"002"`) to rule data. + let mut linter_to_rules: BTreeMap> = BTreeMap::new(); + for rule in &rules { + if let Some(LinterCode { linter, code }) = &rule.code { + linter_to_rules + .entry(linter.clone()) + .or_default() + .insert(code.value(), rule); + } } let linter_idents: Vec<_> = linter_to_rules.keys().collect(); - let all_rules = linter_to_rules.values().flat_map(BTreeMap::values); - let mut output = register_rules(all_rules); + let mut output = register_rules(rules.iter()); output.extend(quote! { #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -198,7 +217,7 @@ pub(crate) fn map_codes(func: &ItemFn) -> syn::Result { } }); - let rule_to_code = generate_rule_to_code(&linter_to_rules); + let rule_to_code = generate_rule_to_code(&rules); output.extend(rule_to_code); output.extend(generate_iter_impl(&linter_to_rules, &linter_idents)); @@ -208,7 +227,7 @@ pub(crate) fn map_codes(func: &ItemFn) -> syn::Result { /// Group the rules by their common prefixes. fn rules_by_prefix( - rules: &BTreeMap, + rules: &BTreeMap, ) -> BTreeMap)>> { // TODO(charlie): Why do we do this here _and_ in `rule_code_prefix::expand`? let mut rules_by_prefix = BTreeMap::new(); @@ -237,16 +256,20 @@ fn rules_by_prefix( /// to multiple codes (e.g., if it existed in multiple linters, like Pylint and Flake8, under /// different codes). We haven't actually activated this functionality yet, but some work was /// done to support it, so the logic exists here. -fn generate_rule_to_code(linter_to_rules: &BTreeMap>) -> TokenStream { +fn generate_rule_to_code(rules: &[Rule]) -> TokenStream { let mut rule_to_codes: HashMap<&Path, Vec<&Rule>> = HashMap::new(); let mut linter_code_for_rule_match_arms = quote!(); - for (linter, map) in linter_to_rules { - for (code, rule) in map { - let Rule { - path, attrs, name, .. - } = rule; - rule_to_codes.entry(path).or_default().push(rule); + for rule in rules { + let Rule { + path, + attrs, + name, + code, + } = rule; + rule_to_codes.entry(path).or_default().push(rule); + + if let Some(LinterCode { linter, code }) = code { linter_code_for_rule_match_arms.extend(quote! { #(#attrs)* (Self::#linter, Rule::#name) => Some(#code), }); @@ -279,25 +302,31 @@ See also https://github.com/astral-sh/ruff/issues/2186. rule_name.ident ); - let Rule { - linter, - code, - attrs, - .. - } = codes + let Rule { code, attrs, .. } = codes .iter() - .sorted_by_key(|data| data.linter == "Pylint") + .sorted_by_key(|rule| { + rule.code + .as_ref() + .is_some_and(|code| code.linter == "Pylint") + }) .next() .unwrap(); + let noqa_code = match code { + Some(LinterCode { linter, code }) => { + quote!(Some(NoqaCode(crate::registry::Linter::#linter.common_prefix(), #code))) + } + None => quote!(None), + }; + rule_noqa_code_match_arms.extend(quote! { - #(#attrs)* Rule::#rule_name => NoqaCode(crate::registry::Linter::#linter.common_prefix(), #code), + #(#attrs)* Rule::#rule_name => #noqa_code, }); } let rule_to_code = quote! { impl Rule { - pub fn noqa_code(&self) -> NoqaCode { + pub fn noqa_code(&self) -> Option { use crate::registry::RuleNamespace; match self { @@ -336,7 +365,7 @@ See also https://github.com/astral-sh/ruff/issues/2186. /// Implement `impl IntoIterator for &Linter` and `RuleCodePrefix::iter()` fn generate_iter_impl( - linter_to_rules: &BTreeMap>, + linter_to_rules: &BTreeMap>, linter_idents: &[&Ident], ) -> TokenStream { let mut linter_rules_match_arms = quote!(); @@ -498,16 +527,20 @@ impl Parse for Rule { let attrs = Attribute::parse_outer(input)?; let pat_tuple; parenthesized!(pat_tuple in input); - let linter: Ident = pat_tuple.parse()?; - let _: Token!(,) = pat_tuple.parse()?; - let code: LitStr = pat_tuple.parse()?; + let code = if pat_tuple.is_empty() { + None + } else { + let linter: Ident = pat_tuple.parse()?; + let _: Token!(,) = pat_tuple.parse()?; + let code: LitStr = pat_tuple.parse()?; + Some(LinterCode { linter, code }) + }; let _: Token!(=>) = input.parse()?; let rule_path: Path = input.parse()?; let _: Token!(,) = input.parse()?; let rule_name = rule_path.segments.last().unwrap().ident.clone(); Ok(Rule { name: rule_name, - linter, code, path: rule_path, attrs, diff --git a/crates/ruff_server/src/lint.rs b/crates/ruff_server/src/lint.rs index 308de886ee9e81..539fd12ba36e80 100644 --- a/crates/ruff_server/src/lint.rs +++ b/crates/ruff_server/src/lint.rs @@ -391,6 +391,8 @@ fn to_lsp_diagnostic( } else { ( match diagnostic.severity() { + // Map lint diagnostics without codes to warning, like in `severity`. + _ if diagnostic.id().is_lint() => lsp_types::DiagnosticSeverity::Warning, ruff_db::diagnostic::Severity::Info => lsp_types::DiagnosticSeverity::Information, ruff_db::diagnostic::Severity::Warning => lsp_types::DiagnosticSeverity::Warning, ruff_db::diagnostic::Severity::Error => lsp_types::DiagnosticSeverity::Error, diff --git a/crates/ruff_server/src/server/api/requests/hover.rs b/crates/ruff_server/src/server/api/requests/hover.rs index 5085a02c138fc4..cefc9b78d08c73 100644 --- a/crates/ruff_server/src/server/api/requests/hover.rs +++ b/crates/ruff_server/src/server/api/requests/hover.rs @@ -112,18 +112,22 @@ fn hover( fn format_rule_text(rule: Rule) -> String { let mut output = String::new(); - let _ = write!(&mut output, "# {} ({})", rule.name(), rule.noqa_code()); + let _ = write!(&mut output, "# {}", rule.name_and_code()); output.push('\n'); output.push('\n'); - let (linter, _) = Linter::parse_code(&rule.noqa_code().to_string()).unwrap(); - let _ = write!( - &mut output, - "Derived from the **{}** linter.", - linter.name() - ); - output.push('\n'); - output.push('\n'); + if let Some(linter) = rule + .noqa_code() + .and_then(|code| Linter::parse_code(&code.to_string()).map(|(linter, _)| linter)) + { + let _ = write!( + &mut output, + "Derived from the **{}** linter.", + linter.name() + ); + output.push('\n'); + output.push('\n'); + } let fix_availability = rule.fixable(); if matches!( @@ -144,7 +148,7 @@ fn format_rule_text(rule: Rule) -> String { if let Some(explanation) = rule.explanation() { output.push_str(explanation.trim()); } else { - tracing::warn!("Rule {} does not have an explanation", rule.noqa_code()); + tracing::warn!("Rule {} does not have an explanation", rule.name_and_code()); output.push_str("An issue occurred: an explanation for this rule was not found."); } output diff --git a/crates/ruff_wasm/tests/api.rs b/crates/ruff_wasm/tests/api.rs index 1c829f6c6462bf..ee018525ef6701 100644 --- a/crates/ruff_wasm/tests/api.rs +++ b/crates/ruff_wasm/tests/api.rs @@ -59,7 +59,7 @@ fn empty_config() { "if (1, 2):\n pass", r#"{}"#, [ExpandedMessage { - code: Rule::IfTuple.identifier().to_string(), + code: Rule::IfTuple.noqa_code().unwrap().to_string(), message: "If test is a tuple, which is always `True`".to_string(), tags: vec![], annotations: vec![primary_annotation( diff --git a/python/ruff-ecosystem/ruff_ecosystem/projects.py b/python/ruff-ecosystem/ruff_ecosystem/projects.py index 2e86360817504c..4d4447734924cf 100644 --- a/python/ruff-ecosystem/ruff_ecosystem/projects.py +++ b/python/ruff-ecosystem/ruff_ecosystem/projects.py @@ -72,7 +72,7 @@ def __post_init__(self): @cache -def rule_name_to_code(executable: Path) -> dict[str, str]: +def rule_name_to_code(executable: Path) -> dict[str, str | None]: rules = json.loads( check_output( [executable, "rule", "--all", "--output-format", "json"], @@ -83,7 +83,7 @@ def rule_name_to_code(executable: Path) -> dict[str, str]: def normalize_rule_selectors( - config: dict[str, Any], rule_names: dict[str, str] + config: dict[str, Any], rule_names: dict[str, str | None] ) -> None: selector_lists: list[list[Any]] = [] @@ -104,12 +104,14 @@ def normalize_rule_selectors( ) for selectors in selector_lists: - selectors[:] = [ - rule_names.get(selector, selector) - if isinstance(selector, str) - else selector - for selector in selectors - ] + normalized = [] + for selector in selectors: + if not isinstance(selector, str): + normalized.append(selector) + # Rules without codes have no selector that works outside preview mode. + elif (code := rule_names.get(selector, selector)) is not None: + normalized.append(code) + selectors[:] = normalized @dataclass(frozen=True) @@ -147,7 +149,7 @@ def patch_config( self, dirpath: Path, preview: bool, - rule_names: dict[str, str], + rule_names: dict[str, str | None], ) -> None: """ Temporarily patch the Ruff configuration file in the given directory. diff --git a/scripts/generate_mkdocs.py b/scripts/generate_mkdocs.py index 14b08b9dae8e05..a80966c1735c6f 100644 --- a/scripts/generate_mkdocs.py +++ b/scripts/generate_mkdocs.py @@ -132,7 +132,7 @@ def clean_file_content(content: str, title: str) -> str: def generate_rule_metadata(rule_doc: Path) -> None: - """Add frontmatter metadata containing a rule's code and description. + """Add frontmatter metadata containing a rule's description and optional code. For example: ```yaml @@ -150,18 +150,21 @@ def generate_rule_metadata(rule_doc: Path) -> None: # Get the description and rule code from the rule doc lines. rule_code = None description = None + title_found = False what_it_does_found = False for line in lines: if line == "\n": continue - # Assume that the only first-level heading is the rule title and code. + # Assume that the only first-level heading is the rule title and optional code. # # For example: given `# abstract-base-class-without-abstract-method (B024)`, # extract the rule code (`B024`). if line.startswith("# "): - rule_code = line.strip().rsplit("(", 1) - rule_code = rule_code[1][:-1] + title_found = True + _, separator, code = line.strip().rpartition(" (") + if separator and code.endswith(")"): + rule_code = code[:-1] if line.startswith("## What it does"): what_it_does_found = True @@ -170,30 +173,21 @@ def generate_rule_metadata(rule_doc: Path) -> None: if what_it_does_found and not description: description = line.removesuffix("\n") - if all([rule_code, description]): + if title_found and description: break else: - if not rule_code: + if not title_found: raise ValueError("Missing title line") if not what_it_does_found: raise ValueError(f"Missing '## What it does' in {rule_doc}") with rule_doc.open("w", encoding="utf-8") as f: - f.writelines( - "\n".join( - [ - "---", - "description: |-", - f" {description}", - "tags:", - f"- {rule_code}", - "---", - "", - "", - ] - ) - ) + metadata = ["---", "description: |-", f" {description}"] + if rule_code is not None: + metadata.extend(["tags:", f"- {rule_code}"]) + metadata.extend(["---", "", ""]) + f.write("\n".join(metadata)) f.writelines(lines) @@ -301,6 +295,7 @@ def main() -> None: ), ] for rule in rules + if rule["code"] is not None ) ), }, From 01c1b41ecebdd24b7253413ddf5892738866c4cf Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Tue, 25 Aug 2026 15:43:33 -0400 Subject: [PATCH 5/8] Restore pytest-fixture-autouse as a codeless pedantic rule --- .../mdtest/ruff/pytest-fixture-autouse.md | 26 ++++++++++++++++--- crates/ruff_linter/src/codes.rs | 4 ++- .../ruff/rules/pytest_fixture_autouse.rs | 11 +++----- ruff.schema.json | 1 + 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/crates/ruff_linter/resources/mdtest/ruff/pytest-fixture-autouse.md b/crates/ruff_linter/resources/mdtest/ruff/pytest-fixture-autouse.md index bc601585bd3e68..704eb446a2512c 100644 --- a/crates/ruff_linter/resources/mdtest/ruff/pytest-fixture-autouse.md +++ b/crates/ruff_linter/resources/mdtest/ruff/pytest-fixture-autouse.md @@ -1,8 +1,8 @@ -# `pytest-fixture-autouse` (`RUF076`) +# `pytest-fixture-autouse` ```toml lint.preview = true -# lint.select = ["RUF076"] +lint.select = ["pytest-fixture-autouse"] ``` ## Basic errors @@ -11,12 +11,12 @@ lint.preview = true import pytest -@pytest.fixture(autouse=True) # TODO: snapshot: pytest-fixture-autouse +@pytest.fixture(autouse=True) # error: [pytest-fixture-autouse] def my_autouse_fixture(): pass -@pytest.fixture(scope="module", autouse=True) # TODO: error: [pytest-fixture-autouse] +@pytest.fixture(scope="module", autouse=True) # error: [pytest-fixture-autouse] def my_scoped_autouse_fixture(): pass ``` @@ -46,3 +46,21 @@ def decorator_no_arguments(): def not_a_fixture(autouse=True): pass ``` + +## Inline suppressions + +A rule without a legacy code can be suppressed by name or by a blanket `noqa` comment. + +```py +import pytest + + +@pytest.fixture(autouse=True) # ruff: ignore[pytest-fixture-autouse] +def ignored_by_name(): + pass + + +@pytest.fixture(autouse=True) # noqa +def ignored_by_blanket_noqa(): + pass +``` diff --git a/crates/ruff_linter/src/codes.rs b/crates/ruff_linter/src/codes.rs index 6bc8895ada36e3..66c3e739187f24 100644 --- a/crates/ruff_linter/src/codes.rs +++ b/crates/ruff_linter/src/codes.rs @@ -1213,7 +1213,6 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleStatus, Rule)> { (Ruff, "073") => rules::ruff::rules::FStringPercentFormat, (Ruff, "074") => rules::ruff::rules::IncorrectDecoratorOrder, (Ruff, "075") => rules::ruff::rules::FallibleContextManager, - (Ruff, "076") => rules::ruff::rules::PytestFixtureAutouse, (Ruff, "100") => rules::ruff::rules::UnusedNOQA, (Ruff, "101") => rules::ruff::rules::RedirectedNOQA, @@ -1357,6 +1356,9 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleStatus, Rule)> { (Flake8Logging, "014") => rules::flake8_logging::rules::ExcInfoOutsideExceptHandler, (Flake8Logging, "015") => rules::flake8_logging::rules::RootLoggerCall, + // Rules that belong only to categories, without linter groups or codes. + () => rules::ruff::rules::PytestFixtureAutouse, + _ => return None, }) } diff --git a/crates/ruff_linter/src/rules/ruff/rules/pytest_fixture_autouse.rs b/crates/ruff_linter/src/rules/ruff/rules/pytest_fixture_autouse.rs index 571704483ddb7b..f2245cf8eb15f9 100644 --- a/crates/ruff_linter/src/rules/ruff/rules/pytest_fixture_autouse.rs +++ b/crates/ruff_linter/src/rules/ruff/rules/pytest_fixture_autouse.rs @@ -8,11 +8,6 @@ use crate::checkers::ast::Checker; use crate::codes::Category; use crate::rules::flake8_pytest_style::helpers::is_pytest_fixture; -/// ## Removed -/// This rule has been removed because it is highly opinionated and may encourage unidiomatic pytest -/// usage. It may be reintroduced in the future under a different category but was not a good fit -/// for the `RUF` category. -/// /// ## What it does /// Checks for `pytest` fixtures that set the parameter `autouse=True` in the decorator constructor. /// @@ -59,14 +54,14 @@ use crate::rules::flake8_pytest_style::helpers::is_pytest_fixture; /// /// ```toml /// [tool.ruff.lint.per-file-ignores] -/// "!**/conftest.py" = ["RUF076"] +/// "!**/conftest.py" = ["pytest-fixture-autouse"] /// ``` /// /// ## References /// - [`pytest` documentation: Sharing fixtures across classes, modules, packages or session](https://docs.pytest.org/en/stable/how-to/fixtures.html#scope-sharing-fixtures-across-classes-modules-packages-or-session) /// - [`pytest` documentation: Fixtures can request other fixtures](https://docs.pytest.org/en/stable/how-to/fixtures.html#fixtures-can-request-other-fixtures) #[derive(ViolationMetadata)] -#[violation_metadata(removed_since = "0.15.20", category = Category::Pedantic)] +#[violation_metadata(preview_since = "NEXT_RUFF_VERSION", category = Category::Pedantic)] pub(crate) struct PytestFixtureAutouse; impl Violation for PytestFixtureAutouse { @@ -76,7 +71,7 @@ impl Violation for PytestFixtureAutouse { } } -/// RUF076 +/// `pytest-fixture-autouse` pub(crate) fn pytest_fixture_autouse(checker: &Checker, decorators: &[Decorator]) { for decorator in decorators { if !is_pytest_fixture(decorator, checker) { diff --git a/ruff.schema.json b/ruff.schema.json index 73e38e9fde32af..ad8f8b3e43edc7 100644 --- a/ruff.schema.json +++ b/ruff.schema.json @@ -5155,6 +5155,7 @@ "pytest-erroneous-use-fixtures-on-fixture", "pytest-extraneous-scope-function", "pytest-fail-without-message", + "pytest-fixture-autouse", "pytest-fixture-finalizer-callback", "pytest-fixture-incorrect-parentheses-style", "pytest-fixture-param-without-value", From 1596c5a3cc35b73f524650a1f00e9553f89e5ee9 Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Tue, 25 Aug 2026 16:40:23 -0400 Subject: [PATCH 6/8] update contributing guidelines --- CONTRIBUTING.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ad37bc0e48091c..ce6a825dbeae14 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -120,12 +120,13 @@ after running `cargo test` like so: cargo insta review ``` -If your pull request relates to a specific lint rule, include the category and rule code in the -title, as in the following examples: +If your pull request relates to a specific lint rule, include the category and rule code or name in +the title, as in the following examples: - \[`flake8-bugbear`\] Avoid false positive for usage after `continue` (`B031`) - \[`flake8-simplify`\] Detect implicit `else` cases in `needless-bool` (`SIM103`) - \[`pycodestyle`\] Implement `redundant-backslash` (`E502`) +- \[`pedantic`\] Implement `pytest-fixture-autouse` Your pull request will be reviewed by a maintainer, which may involve a few rounds of iteration prior to merging. @@ -225,7 +226,17 @@ adding a new lint rule are as follows: statements, like imports) or `analyze/expression.rs` (if your rule is based on analyzing expressions, like function calls). -1. Map the violation struct to a rule code in `crates/ruff_linter/src/codes.rs` (e.g., `B011`). +1. Register the violation struct in `crates/ruff_linter/src/codes.rs` (e.g., `B011`). If your lint + rule comes from an existing linter, you can map it to that linter and give it a code. Otherwise, + you can leave the linter and code blank, registering it only to a category. For example: + + ```rust + // Rules with linter groups and codes + (Flake8Logging, "015") => rules::flake8_logging::rules::RootLoggerCall, + + // Rules with only a category + () => rules::ruff::rules::PytestFixtureAutouse, + ``` 1. Add proper [testing](#rule-testing-fixtures-and-snapshots) for your rule. @@ -244,11 +255,15 @@ Once you're satisfied with your code, add tests for your rule (see: [rule testing](#rule-testing-fixtures-and-snapshots)), and regenerate the documentation and associated assets (like our JSON Schema) with `cargo dev generate-all`. -Finally, submit a pull request, and include the category, rule name, and rule code in the title, as -in: +Finally, submit a pull request, and include the category, rule name, and rule code (if applicable) +in the title, as in: > \[`pycodestyle`\] Implement `redundant-backslash` (`E502`) +or + +> \[`pedantic`\] Implement `pytest-fixture-autouse` + #### Rule testing: fixtures and snapshots To test rules, Ruff uses the mdtest framework, initially developed for ty. Mdtests are written as From daec1c3a49e355652509511938ed6d4d2c22ddf7 Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Thu, 27 Aug 2026 09:52:02 -0400 Subject: [PATCH 7/8] review --- crates/ruff/src/printer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ruff/src/printer.rs b/crates/ruff/src/printer.rs index e9e5c88a50c370..5c89cbd82c883c 100644 --- a/crates/ruff/src/printer.rs +++ b/crates/ruff/src/printer.rs @@ -52,7 +52,7 @@ impl ExpandedStatistics<'_> { } } -/// Accumulator type for grouping diagnostics by code or rule name. +/// Accumulator type for grouping diagnostics by name. /// Format: (`code`, `representative_diagnostic`, `total_count`, `fixable_count`) type DiagnosticGroup<'a> = (Option<&'a SecondaryCode>, &'a Diagnostic, usize, usize); From 65201b7b26f471590b293128e316be0a1c23678b Mon Sep 17 00:00:00 2001 From: Brent Westbrook Date: Thu, 27 Aug 2026 10:03:30 -0400 Subject: [PATCH 8/8] use Rule::name_and_code for formatter warning, with alternate format --- crates/ruff/src/commands/format.rs | 3 +-- crates/ruff/tests/cli/format.rs | 8 ++++---- crates/ruff_linter/src/registry.rs | 11 +++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/crates/ruff/src/commands/format.rs b/crates/ruff/src/commands/format.rs index a6c10f3a18e609..1c7fd47f0c0d3b 100644 --- a/crates/ruff/src/commands/format.rs +++ b/crates/ruff/src/commands/format.rs @@ -1096,7 +1096,6 @@ pub(super) fn warn_incompatible_formatter_settings(resolver: &Resolver) { // The formatter always removes blank lines before the docstring. Rule::IncorrectBlankLineBeforeClass, ] { - debug_assert!(rule.noqa_code().is_some()); if setting.linter.rules.enabled(rule) { incompatible_rules.insert(rule); } @@ -1106,7 +1105,7 @@ pub(super) fn warn_incompatible_formatter_settings(resolver: &Resolver) { if !incompatible_rules.is_empty() { let mut rule_names: Vec<_> = incompatible_rules .into_iter() - .map(|rule| format!("`{}`", rule.noqa_code().unwrap())) + .map(|rule| format!("{:#}", rule.name_and_code())) .collect(); rule_names.sort(); if let [rule] = rule_names.as_slice() { diff --git a/crates/ruff/tests/cli/format.rs b/crates/ruff/tests/cli/format.rs index 08549a9fa1e9eb..06ac75c81b4c21 100644 --- a/crates/ruff/tests/cli/format.rs +++ b/crates/ruff/tests/cli/format.rs @@ -1063,7 +1063,7 @@ if condition: print('Should change quotes') ----- stderr ----- - warning: The following rule may cause conflicts when used with the formatter: `COM812`. To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. + warning: The following rule may cause conflicts when used with the formatter: `missing-trailing-comma` (`COM812`). To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. "#); Ok(()) } @@ -1187,7 +1187,7 @@ def say_hy(name: str): 1 file reformatted ----- stderr ----- - warning: The following rule may cause conflicts when used with the formatter: `COM812`. To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. + warning: The following rule may cause conflicts when used with the formatter: `missing-trailing-comma` (`COM812`). To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. warning: The `format.indent-style="tab"` option is incompatible with `W191`, which lints against all uses of tabs. We recommend disabling these rules when using the formatter, which enforces a consistent indentation style. Alternatively, set the `format.indent-style` option to `"space"`. warning: The `lint.flake8-implicit-str-concat.allow-multiline = false` option is incompatible with the formatter unless `ISC001` is enabled. We recommend enabling `ISC001` or setting `allow-multiline=true`. warning: The `format.indent-style="tab"` option is incompatible with `D206`, with requires space-based indentation. We recommend disabling these rules when using the formatter, which enforces a consistent indentation style. Alternatively, set the `format.indent-style` option to `"space"`. @@ -1245,7 +1245,7 @@ def say_hy(name: str): print(f"Hy {name}") ----- stderr ----- - warning: The following rule may cause conflicts when used with the formatter: `COM812`. To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. + warning: The following rule may cause conflicts when used with the formatter: `missing-trailing-comma` (`COM812`). To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. warning: The `format.indent-style="tab"` option is incompatible with `W191`, which lints against all uses of tabs. We recommend disabling these rules when using the formatter, which enforces a consistent indentation style. Alternatively, set the `format.indent-style` option to `"space"`. warning: The `format.indent-style="tab"` option is incompatible with `D206`, with requires space-based indentation. We recommend disabling these rules when using the formatter, which enforces a consistent indentation style. Alternatively, set the `format.indent-style` option to `"space"`. warning: The `flake8-quotes.inline-quotes="single"` option is incompatible with the formatter's `format.quote-style="double"`. We recommend disabling `Q000` and `Q003` when using the formatter, which enforces a consistent quote style. Alternatively, set both options to either `"single"` or `"double"`. @@ -1378,7 +1378,7 @@ def say_hy(name: str): ----- stderr ----- warning: `incorrect-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible. Ignoring `incorrect-blank-line-before-class`. warning: `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible. Ignoring `multi-line-summary-second-line`. - warning: The following rule may cause conflicts when used with the formatter: `COM812`. To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. + warning: The following rule may cause conflicts when used with the formatter: `missing-trailing-comma` (`COM812`). To avoid unexpected behavior, we recommend disabling this rule, either by removing it from the `lint.select` or `lint.extend-select` configuration, or adding it to the `lint.ignore` configuration. "); Ok(()) } diff --git a/crates/ruff_linter/src/registry.rs b/crates/ruff_linter/src/registry.rs index ac2beee94de111..ace3fd51399de5 100644 --- a/crates/ruff_linter/src/registry.rs +++ b/crates/ruff_linter/src/registry.rs @@ -374,12 +374,19 @@ impl Rule { /// ```text /// unused-import (F401) /// ``` + /// + /// When formatted with the `#` flag, both the name and code will be surrounded by backticks: + /// + /// ```text + /// `unused-import` (`F401`) + /// ``` pub fn name_and_code(&self) -> impl std::fmt::Display + use<> { let rule = *self; std::fmt::from_fn(move |f| { - write!(f, "{}", rule.name())?; + let quote = if f.alternate() { "`" } else { "" }; + write!(f, "{quote}{}{quote}", rule.name())?; if let Some(code) = rule.noqa_code() { - write!(f, " ({code})")?; + write!(f, " ({quote}{code}{quote})")?; } Ok(()) })