Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retain parentheses when fixing SIM210 #7118

Merged
merged 1 commit into from
Sep 3, 2023
Merged

Retain parentheses when fixing SIM210 #7118

merged 1 commit into from
Sep 3, 2023

Conversation

charliermarsh
Copy link
Member

Closes #7076.

@charliermarsh charliermarsh added bug Something isn't working fuzzer Surfaced via fuzzing. labels Sep 3, 2023
}

fn autofix_title(&self) -> Option<String> {
let IfExprWithTrueFalse { expr } = self;
Some(format!("Replace with `not {expr}"))
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This message was wrong (mixed up with the next rule).

}

fn autofix_title(&self) -> String {
let IfExprWithFalseTrue { expr } = self;
format!("Replace with `bool({expr})")
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This message was wrong (mixed up with the previous rule).

format!("Use `bool(...)` instead of `True if ... else False`")
} else {
format!("Remove unnecessary `True if ... else False` from comparison")
}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I decided to remove the raw source code from these. I think we're hoping that this information is instead conveyed by showing code frames.

}
if checker.enabled(Rule::IfExprWithFalseTrue) {
flake8_simplify::rules::explicit_false_true_in_ifexpr(
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These names were wrong.

@charliermarsh charliermarsh enabled auto-merge (squash) September 3, 2023 22:28
@charliermarsh charliermarsh merged commit 834566f into main Sep 3, 2023
@charliermarsh charliermarsh deleted the charlie/SIM210 branch September 3, 2023 22:39
@github-actions
Copy link
Contributor

github-actions bot commented Sep 3, 2023

PR Check Results

Ecosystem

ℹ️ ecosystem check detected changes. (+205, -205, 0 error(s))

airflow (+10, -10)

+ airflow/providers/amazon/aws/sensors/s3.py:160:33: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- airflow/providers/amazon/aws/sensors/s3.py:160:33: SIM210 [*] Use `bool(self.check_fn)` instead of `True if self.check_fn else False`
+ airflow/providers/google/cloud/triggers/bigquery.py:532:24: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- airflow/providers/google/cloud/triggers/bigquery.py:532:24: SIM210 [*] Use `bool(response)` instead of `True if response else False`
+ dev/breeze/src/airflow_breeze/commands/minor_release_command.py:31:11: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- dev/breeze/src/airflow_breeze/commands/minor_release_command.py:31:11: SIM210 [*] Use `bool(CI)` instead of `True if CI else False`
+ dev/breeze/src/airflow_breeze/commands/release_candidate_command.py:31:11: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- dev/breeze/src/airflow_breeze/commands/release_candidate_command.py:31:11: SIM210 [*] Use `bool(CI)` instead of `True if CI else False`
+ dev/breeze/src/airflow_breeze/commands/release_command.py:31:11: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- dev/breeze/src/airflow_breeze/commands/release_command.py:31:11: SIM210 [*] Use `bool(CI)` instead of `True if CI else False`
+ dev/breeze/src/airflow_breeze/utils/console.py:110:16: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- dev/breeze/src/airflow_breeze/utils/console.py:110:16: SIM210 [*] Use `bool(recording_file)` instead of `True if recording_file else False`
+ dev/breeze/src/airflow_breeze/utils/console.py:97:16: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- dev/breeze/src/airflow_breeze/utils/console.py:97:16: SIM210 [*] Use `bool(recording_file)` instead of `True if recording_file else False`
+ tests/utils/test_helpers.py:267:28: SIM210 [*] Remove unnecessary `True if ... else False`
- tests/utils/test_helpers.py:267:28: SIM210 [*] Use `bool(true + truthy == 1)` instead of `True if true + truthy == 1 else False`
+ tests/utils/test_helpers.py:298:28: SIM210 [*] Remove unnecessary `True if ... else False`
- tests/utils/test_helpers.py:298:28: SIM210 [*] Use `bool(true + truthy in (0, 1))` instead of `True if true + truthy in (0, 1) else False`
+ tests/www/test_utils.py:87:32: SIM210 [*] Remove unnecessary `True if ... else False`
- tests/www/test_utils.py:87:32: SIM210 [*] Use `bool(sorting_direction == "desc")` instead of `True if sorting_direction == "desc" else False`

bokeh (+2, -2)

+ examples/basic/data/filter_boolean.py:7:10: SIM210 [*] Remove unnecessary `True if ... else False`
- examples/basic/data/filter_boolean.py:7:10: SIM210 [*] Use `bool(y_val > 2)` instead of `True if y_val > 2 else False`
+ examples/basic/data/linked_brushing_subsets.py:13:38: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- examples/basic/data/linked_brushing_subsets.py:13:38: SIM210 [*] Use `bool(y > 250 or y < 100)` instead of `True if y > 250 or y < 100 else False`

content (+193, -193)

+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:174:54: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:174:54: SIM210 [*] Use `bool(args.get('includeGlobalServiceEvents') == 'True')` instead of `True if args.get('includeGlobalServiceEvents') == 'True' else False`
+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:178:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:178:36: SIM210 [*] Use `bool(args.get('isMultiRegionTrail') == 'True')` instead of `True if args.get('isMultiRegionTrail') == 'True' else False`
+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:180:51: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:180:51: SIM210 [*] Use `bool(args.get('enableLogFileValidation') == 'True')` instead of `True if args.get('enableLogFileValidation') == 'True' else False`
+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:248:47: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:248:47: SIM210 [*] Use `bool(args.get('includeShadowTrails') == 'True')` instead of `True if args.get('includeShadowTrails') == 'True' else False`
+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:289:54: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:289:54: SIM210 [*] Use `bool(args.get('includeGlobalServiceEvents') == 'True')` instead of `True if args.get('includeGlobalServiceEvents') == 'True' else False`
+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:293:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:293:36: SIM210 [*] Use `bool(args.get('isMultiRegionTrail') == 'True')` instead of `True if args.get('isMultiRegionTrail') == 'True' else False`
+ Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:295:51: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudTrail/Integrations/AWS-CloudTrail/AWS-CloudTrail.py:295:51: SIM210 [*] Use `bool(args.get('enableLogFileValidation') == 'True')` instead of `True if args.get('enableLogFileValidation') == 'True' else False`
+ Packs/AWS-CloudWatchLogs/Integrations/AWS-CloudWatchLogs/AWS-CloudWatchLogs.py:147:43: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-CloudWatchLogs/Integrations/AWS-CloudWatchLogs/AWS-CloudWatchLogs.py:147:43: SIM210 [*] Use `bool(args.get('interleaved') == 'True')` instead of `True if args.get('interleaved') == 'True' else False`
+ Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:165:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:165:36: SIM210 [*] Use `bool(args.get('activate') == 'True')` instead of `True if args.get('activate') == 'True' else False`
+ Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:204:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:204:36: SIM210 [*] Use `bool(args.get('activate') == 'True')` instead of `True if args.get('activate') == 'True' else False`
+ Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:267:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:267:36: SIM210 [*] Use `bool(args.get('activate') == 'True')` instead of `True if args.get('activate') == 'True' else False`
+ Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:355:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-GuardDuty/Integrations/AWSGuardDuty/AWSGuardDuty.py:355:36: SIM210 [*] Use `bool(args.get('activate') == 'True')` instead of `True if args.get('activate') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:146:31: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:146:31: SIM210 [*] Use `bool(args.get('passwordResetRequired') == 'True')` instead of `True if args.get('passwordResetRequired') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:270:22: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:270:22: SIM210 [*] Use `bool(args.get('onlyAttached') == 'True')` instead of `True if args.get('onlyAttached') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:595:40: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:595:40: SIM210 [*] Use `bool(args.get('setAsDefault') == 'True')` instead of `True if args.get('setAsDefault') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:703:42: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:703:42: SIM210 [*] Use `bool(args.get('requireSymbols') == 'True')` instead of `True if args.get('requireSymbols') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:705:42: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:705:42: SIM210 [*] Use `bool(args.get('requireNumbers') == 'True')` instead of `True if args.get('requireNumbers') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:708:44: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:708:44: SIM210 [*] Use `bool(args.get('requireUppercaseCharacters') == 'True')` instead of `True if args.get('requireUppercaseCharacters') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:711:44: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:711:44: SIM210 [*] Use `bool(args.get('requireLowercaseCharacters') == 'True')` instead of `True if args.get('requireLowercaseCharacters') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:714:44: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:714:44: SIM210 [*] Use `bool(args.get('allowUsersToChangePassword') == 'True')` instead of `True if args.get('allowUsersToChangePassword') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:720:38: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:720:38: SIM210 [*] Use `bool(args.get('hardExpiry') == 'True')` instead of `True if args.get('hardExpiry') == 'True' else False`
+ Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:72:49: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-IAM/Integrations/AWS-IAM/AWS-IAM.py:72:49: SIM210 [*] Use `bool(args.get('passwordResetRequired') == 'True')` instead of `True if args.get('passwordResetRequired') == 'True' else False`
+ Packs/AWS-S3/Integrations/AWS-S3/AWS-S3.py:118:47: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AWS-S3/Integrations/AWS-S3/AWS-S3.py:118:47: SIM210 [*] Use `bool(args.get('confirmRemoveSelfBucketAccess') == 'True')` instead of `True if args.get('confirmRemoveSelfBucketAccess') == 'True' else False`
+ Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:281:23: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:281:23: SIM210 [*] Use `bool(0 == res_json['rescode'])` instead of `True if 0 == res_json['rescode'] else False`
+ Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:314:25: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:314:25: SIM210 [*] Use `bool(0 == res_json['rescode'])` instead of `True if 0 == res_json['rescode'] else False`
+ Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:347:23: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:347:23: SIM210 [*] Use `bool(0 == res_json['rescode'])` instead of `True if 0 == res_json['rescode'] else False`
+ Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:381:25: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AcalvioShadowplex/Integrations/acalvioapp/acalvioapp.py:381:25: SIM210 [*] Use `bool(0 == res_json['rescode'])` instead of `True if 0 == res_json['rescode'] else False`
+ Packs/AgariPhishingDefense/Integrations/AgariPhishingDefense/AgariPhishingDefense_test.py:88:20: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/AgariPhishingDefense/Integrations/AgariPhishingDefense/AgariPhishingDefense_test.py:88:20: SIM210 [*] Use `bool(status < 400)` instead of `True if status < 400 else False`
+ Packs/Akamai_WAF/Integrations/Akamai_WAF/Akamai_WAF.py:4010:41: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Akamai_WAF/Integrations/Akamai_WAF/Akamai_WAF.py:4010:41: SIM210 [*] Use `bool(gzip_compression.lower() == 'yes')` instead of `True if gzip_compression.lower() == 'yes' else False`
+ Packs/Akamai_WAF/Integrations/Akamai_WAF/Akamai_WAF.py:4050:45: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Akamai_WAF/Integrations/Akamai_WAF/Akamai_WAF.py:4050:45: SIM210 [*] Use `bool(gzip_compression.lower() == 'yes')` instead of `True if gzip_compression.lower() == 'yes' else False`
+ Packs/Akamai_WAF/Integrations/Akamai_WAF/Akamai_WAF.py:4582:15: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Akamai_WAF/Integrations/Akamai_WAF/Akamai_WAF.py:4582:15: SIM210 [*] Use `bool(val.lower() == 'yes')` instead of `True if val.lower() == 'yes' else False`
+ Packs/AutoFocus/Integrations/AutofocusV2/AutofocusV2.py:1335:19: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/AutoFocus/Integrations/AutofocusV2/AutofocusV2.py:1335:19: SIM211 [*] Use `not args.get('filter_data') == 'False'` instead of `False if args.get('filter_data') == 'False' else True`
+ Packs/CIRCL/Integrations/CIRCL/CIRCL.py:16:18: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/CIRCL/Integrations/CIRCL/CIRCL.py:16:18: SIM210 [*] Use `bool(demisto.params().get('proxy'))` instead of `True if demisto.params().get('proxy') else False`
+ Packs/Centreon/Integrations/Centreon/Centreon.py:15:11: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/Centreon/Integrations/Centreon/Centreon.py:15:11: SIM211 [*] Use `not demisto.params().get('insecure')` instead of `False if demisto.params().get('insecure') else True`
+ Packs/CheckpointFirewall/Integrations/CheckPointFirewallV2/CheckPointFirewallV2.py:1742:18: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/CheckpointFirewall/Integrations/CheckPointFirewallV2/CheckPointFirewallV2.py:1742:18: SIM211 [*] Use `not args.get('properties') == 'false'` instead of `False if args.get('properties') == 'false' else True`
+ Packs/CheckpointFirewall/Integrations/CheckPointFirewallV2/CheckPointFirewallV2.py:1743:16: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/CheckpointFirewall/Integrations/CheckPointFirewallV2/CheckPointFirewallV2.py:1743:16: SIM211 [*] Use `not args.get('profiles') == 'false'` instead of `False if args.get('profiles') == 'false' else True`
+ Packs/Clarizen/Integrations/ClarizenIAM/ClarizenIAM.py:112:25: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/Clarizen/Integrations/ClarizenIAM/ClarizenIAM.py:112:25: SIM211 [*] Use `not active == 'Disabled'` instead of `False if active == 'Disabled' else True`
+ Packs/Clarizen/Integrations/ClarizenIAM/ClarizenIAM.py:174:21: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/Clarizen/Integrations/ClarizenIAM/ClarizenIAM.py:174:21: SIM211 [*] Use `not active == 'Disabled'` instead of `False if active == 'Disabled' else True`
+ Packs/Claroty/Integrations/Claroty/Claroty.py:494:12: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/Claroty/Integrations/Claroty/Claroty.py:494:12: SIM211 [*] Use `not sort_order == "asc"` instead of `False if sort_order == "asc" else True`
+ Packs/CloudShare/Integrations/CloudShare/CloudShare.py:412:23: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CloudShare/Integrations/CloudShare/CloudShare.py:412:23: SIM210 [*] Use `bool(args.get('isFull', 'false') == 'true')` instead of `True if args.get('isFull', 'false') == 'true' else False`
+ Packs/CloudShare/Integrations/CloudShare/CloudShare.py:533:13: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CloudShare/Integrations/CloudShare/CloudShare.py:533:13: SIM210 [*] Use `bool(args.get('owned', 'false') == 'true')` instead of `True if args.get('owned', 'false') == 'true' else False`
+ Packs/CloudShare/Integrations/CloudShare/CloudShare.py:534:15: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CloudShare/Integrations/CloudShare/CloudShare.py:534:15: SIM210 [*] Use `bool(args.get('visible', 'false') == 'true')` instead of `True if args.get('visible', 'false') == 'true' else False`
+ Packs/CloudShare/Integrations/CloudShare/CloudShare.py:55:38: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CloudShare/Integrations/CloudShare/CloudShare.py:55:38: SIM210 [*] Use `bool(args.get('WhereUserIsProjectManager', 'false') == 'true')` instead of `True if args.get('WhereUserIsProjectManager', 'false') == 'true' else False`
+ Packs/CloudShare/Integrations/CloudShare/CloudShare.py:56:37: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CloudShare/Integrations/CloudShare/CloudShare.py:56:37: SIM210 [*] Use `bool(args.get('WhereUserIsProjectMember', 'false') == 'true')` instead of `True if args.get('WhereUserIsProjectMember', 'false') == 'true' else False`
+ Packs/CloudShare/Integrations/CloudShare/CloudShare.py:57:36: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CloudShare/Integrations/CloudShare/CloudShare.py:57:36: SIM210 [*] Use `bool(args.get('WhereUserCanCreateClass', 'false') == 'true')` instead of `True if args.get('WhereUserCanCreateClass', 'false') == 'true' else False`
+ Packs/CofenseTriage/Integrations/CofenseTriagev3/CofenseTriagev3.py:258:25: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/CofenseTriage/Integrations/CofenseTriagev3/CofenseTriagev3.py:258:25: SIM211 [*] Use `not key.startswith(arg)` instead of `False if key.startswith(arg) else True`
+ Packs/CommonScripts/Scripts/CVSSCalculator/CVSSCalculator.py:175:21: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CommonScripts/Scripts/CVSSCalculator/CVSSCalculator.py:175:21: SIM210 [*] Use `bool(args.get('S') == 'C')` instead of `True if args.get('S') == 'C' else False`
+ Packs/CommonScripts/Scripts/CVSSCalculator/CVSSCalculator.py:176:30: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CommonScripts/Scripts/CVSSCalculator/CVSSCalculator.py:176:30: SIM210 [*] Use `bool(args.get('MS') == 'C')` instead of `True if args.get('MS') == 'C' else False`
+ Packs/CommonScripts/Scripts/DisplayHTML/DisplayHTML.py:10:12: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/CommonScripts/Scripts/DisplayHTML/DisplayHTML.py:10:12: SIM210 [*] Use `bool(note and note.lower() == "true")` instead of `True if note and note.lower() == "true" else False`
+ Packs/CommonScripts/Scripts/FetchIndicatorsFromFile/FetchIndicatorsFromFile.py:211:19: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CommonScripts/Scripts/FetchIndicatorsFromFile/FetchIndicatorsFromFile.py:211:19: SIM210 [*] Use `bool(args.get('auto_detect') == 'True')` instead of `True if args.get('auto_detect') == 'True' else False`
+ Packs/CommonScripts/Scripts/GetIndicatorDBotScoreFromCache/GetIndicatorDBotScoreFromCache.py:16:28: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/CommonScripts/Scripts/GetIndicatorDBotScoreFromCache/GetIndicatorDBotScoreFromCache.py:16:28: SIM211 [*] Use `not data.get("expirationStatus") == "active"` instead of `False if data.get("expirationStatus") == "active" else True`
+ Packs/CommonScripts/Scripts/HTTPListRedirects/HTTPListRedirects_test.py:82:26: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CommonScripts/Scripts/HTTPListRedirects/HTTPListRedirects_test.py:82:26: SIM210 [*] Use `bool(use_head == 'true')` instead of `True if use_head == 'true' else False`
+ Packs/CommonScripts/Scripts/HttpV2/HttpV2.py:198:27: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/CommonScripts/Scripts/HttpV2/HttpV2.py:198:27: SIM210 [*] Use `bool(retry_on_status)` instead of `True if retry_on_status else False`
+ Packs/CommonScripts/Scripts/IsInternalHostName/IsInternalHostName.py:23:31: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/CommonScripts/Scripts/IsInternalHostName/IsInternalHostName.py:23:31: SIM210 [*] Use `bool(internalRegexMatch or internalDomainMatch)` instead of `True if internalRegexMatch or internalDomainMatch else False`
+ Packs/CommonScripts/Scripts/LookupCSV/LookupCSV.py:105:28: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/CommonScripts/Scripts/LookupCSV/LookupCSV.py:105:28: SIM210 [*] Use `bool(csv_data and search_column)` instead of `True if csv_data and search_column else False`
+ Packs/CommonScripts/Scripts/ParseCSV/ParseCSV.py:127:17: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/CommonScripts/Scripts/ParseCSV/ParseCSV.py:127:17: SIM210 [*] Use `bool(d_args['parseAll'] == 'yes')` instead of `True if d_args['parseAll'] == 'yes' else False`
+ Packs/Cybereason/Integrations/Cybereason/Cybereason.py:1180:33: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Cybereason/Integrations/Cybereason/Cybereason.py:1180:33: SIM210 [*] Use `bool(dict_safe_get(simple_values, ['isSigned', 'values', 0]) == 'true')` instead of `True if dict_safe_get(simple_values, ['isSigned', 'values', 0]) == 'true' else False`
+ Packs/Cybereason/Integrations/Cybereason/Cybereason.py:1340:32: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Cybereason/Integrations/Cybereason/Cybereason.py:1340:32: SIM210 [*] Use `bool(dict_safe_get(simple_values, ['isLocalSystem', 'values', 0]) == 'true')` instead of `True if dict_safe_get(simple_values, ['isLocalSystem', 'values', 0]) == 'true' else False`
+ Packs/Cybersixgill-DVE/Integrations/CybersixgillDVEEnrichment/CybersixgillDVEEnrichment_test.py:407:19: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Cybersixgill-DVE/Integrations/CybersixgillDVEEnrichment/CybersixgillDVEEnrichment_test.py:407:19: SIM210 [*] Use `bool(self.status_code == 200)` instead of `True if self.status_code == 200 else False`
+ Packs/Cybersixgill-DVE/Integrations/CybersixgillDVEFeed/CybersixgillDVEFeed_test.py:861:19: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Cybersixgill-DVE/Integrations/CybersixgillDVEFeed/CybersixgillDVEFeed_test.py:861:19: SIM210 [*] Use `bool(self.status_code == 200)` instead of `True if self.status_code == 200 else False`
+ Packs/DeprecatedContent/Integrations/Cymon/Cymon.py:23:23: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/DeprecatedContent/Integrations/Cymon/Cymon.py:23:23: SIM211 [*] Use `not demisto.params().get('unsecure')` instead of `False if demisto.params().get('unsecure') else True`
+ Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:653:24: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:653:24: SIM210 [*] Use `bool(exposure.get('exposed') is True)` instead of `True if exposure.get('exposed') is True else False`
+ Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:654:26: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:654:26: SIM210 [*] Use `bool(exposure.get('detect_feed') is True)` instead of `True if exposure.get('detect_feed') is True else False`
+ Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:655:27: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:655:27: SIM210 [*] Use `bool(exposure.get('prevent_feed') is True)` instead of `True if exposure.get('prevent_feed') is True else False`
+ Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:656:26: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:656:26: SIM210 [*] Use `bool(exposure.get('community_feed') is True)` instead of `True if exposure.get('community_feed') is True else False`
+ Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:657:25: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/EclecticIQ/Integrations/EclecticIQ/EclecticIQ.py:657:25: SIM210 [*] Use `bool(exposure.get('sighted') is True)` instead of `True if exposure.get('sighted') is True else False`
+ Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1800:16: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1800:16: SIM210 [*] Use `bool(args.get('context_table_type') == 'key_only')` instead of `True if args.get('context_table_type') == 'key_only' else False`
+ Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1820:16: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1820:16: SIM210 [*] Use `bool(args.get('context_table_type') == 'key_only')` instead of `True if args.get('context_table_type') == 'key_only' else False`
+ Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1861:18: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1861:18: SIM210 [*] Use `bool(args.get('has_header') == 'true')` instead of `True if args.get('has_header') == 'true' else False`
+ Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1862:15: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/Exabeam/Integrations/Exabeam/Exabeam.py:1862:15: SIM210 [*] Use `bool(args.get('append_or_replace') == 'replace')` instead of `True if args.get('append_or_replace') == 'replace' else False`
+ Packs/FeedMitreAttack/Integrations/FeedMitreAttack/FeedMitreAttack.py:313:11: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/FeedMitreAttack/Integrations/FeedMitreAttack/FeedMitreAttack.py:313:11: SIM210 [*] Use `bool(args.get("raw") == "True")` instead of `True if args.get("raw") == "True" else False`
+ Packs/FeedMitreAttack/Integrations/FeedMitreAttack/FeedMitreAttack.py:354:17: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/FeedMitreAttack/Integrations/FeedMitreAttack/FeedMitreAttack.py:354:17: SIM210 [*] Use `bool(args.get("casesensitive") == "True")` instead of `True if args.get("casesensitive") == "True" else False`
+ Packs/FeedMitreAttackv2/Integrations/FeedMitreAttackv2/FeedMitreAttackv2.py:237:12: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/FeedMitreAttackv2/Integrations/FeedMitreAttackv2/FeedMitreAttackv2.py:237:12: SIM210 [*] Use `bool(indicator_json.get("x_mitre_deprecated") or indicator_json.get("revoked"))` instead of `True if indicator_json.get("x_mitre_deprecated") or indicator_json.get("revoked") else False`
+ Packs/FeedMitreAttackv2/Integrations/FeedMitreAttackv2/FeedMitreAttackv2.py:465:11: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/FeedMitreAttackv2/Integrations/FeedMitreAttackv2/FeedMitreAttackv2.py:465:11: SIM210 [*] Use `bool(args.get("raw") == "True")` instead of `True if args.get("raw") == "True" else False`
+ Packs/FireEyeHX/Integrations/FireEyeHXv2/FireEyeHXv2.py:2878:30: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/FireEyeHX/Integrations/FireEyeHXv2/FireEyeHXv2.py:2878:30: SIM211 [*] Use `not args.get("exhaustive") == "false"` instead of `False if args.get("exhaustive") == "false" else True`
+ Packs/FireEyeNX/Integrations/FireEyeNX/FireEyeNX_test.py:80:20: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/FireEyeNX/Integrations/FireEyeNX/FireEyeNX_test.py:80:20: SIM210 [*] Use `bool(status < 400)` instead of `True if status < 400 else False`
+ Packs/Forescout/Integrations/Forescout/Forescout.py:281:22: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/Forescout/Integrations/Forescout/Forescout.py:281:22: SIM211 [*] Use `not case_sensitive.casefold() == 'false'` instead of `False if case_sensitive.casefold() == 'false' else True`
+ Packs/Forescout/Integrations/Forescout/Forescout.py:285:21: SIM211 [*] Use `not ...` instead of `False if ... else True`
- Packs/Forescout/Integrations/Forescout/Forescout.py:285:21: SIM211 [*] Use `not match_exactly.casefold() == 'false'` instead of `False if match_exactly.casefold() == 'false' else True`
+ Packs/GSuiteAdmin/Integrations/GSuiteAdmin/GSuiteAdmin.py:525:12: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/GSuiteAdmin/Integrations/GSuiteAdmin/GSuiteAdmin.py:525:12: SIM210 [*] Use `bool(re.match(emailRegex, email))` instead of `True if re.match(emailRegex, email) else False`
+ Packs/GenericSQL/Integrations/GenericSQL/GenericSQL.py:390:27: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GenericSQL/Integrations/GenericSQL/GenericSQL.py:390:27: SIM210 [*] Use `bool(fetch_parameters == 'ID and timestamp')` instead of `True if fetch_parameters == 'ID and timestamp' else False`
+ Packs/GenericSQL/Integrations/GenericSQL/GenericSQL.py:421:27: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GenericSQL/Integrations/GenericSQL/GenericSQL.py:421:27: SIM210 [*] Use `bool(fetch_parameters == 'ID and timestamp')` instead of `True if fetch_parameters == 'ID and timestamp' else False`
+ Packs/GoogleChronicleBackstory/Integrations/GoogleChronicleBackstory/GoogleChronicleBackstory.py:3594:22: SIM210 [*] Use `bool(...)` instead of `True if ... else False`
- Packs/GoogleChronicleBackstory/Integrations/GoogleChronicleBackstory/GoogleChronicleBackstory.py:3594:22: SIM210 [*] Use `bool(not json_data)` instead of `True if not json_data else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1372:24: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1372:24: SIM210 [*] Use `bool(args.get('forceCreate') == 'true')` instead of `True if args.get('forceCreate') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1558:30: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1558:30: SIM210 [*] Use `bool(args.get('autoCreateRoutes') == 'true')` instead of `True if args.get('autoCreateRoutes') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1574:13: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1574:13: SIM210 [*] Use `bool(args.get('networkPeeringExchangeSubnetRoutes') == 'True')` instead of `True if args.get('networkPeeringExchangeSubnetRoutes') == 'True' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1676:13: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:1676:13: SIM210 [*] Use `bool(args.get('autoCreateSubnetworks') == 'true')` instead of `True if args.get('autoCreateSubnetworks') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:377:26: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:377:26: SIM210 [*] Use `bool(args.get('canIpForward') == 'true')` instead of `True if args.get('canIpForward') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:3977:29: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:3977:29: SIM210 [*] Use `bool(args.get('logConfigEnable') == 'true')` instead of `True if args.get('logConfigEnable') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:4066:29: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:4066:29: SIM210 [*] Use `bool(args.get('logConfigEnable') == 'true')` instead of `True if args.get('logConfigEnable') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:4070:20: SIM210 [*] Remove unnecessary `True if ... else False`
- Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:4070:20: SIM210 [*] Use `bool(args.get('disabled') == 'true')` instead of `True if args.get('disabled') == 'true' else False`
+ Packs/GoogleCloudCompute/Integrations/GoogleCloudCompute/GoogleCloudCompute.py:420:13: SIM210 [*] Remove unnecessary `True if ... else False`
- 

renovate bot referenced this pull request in ixm-one/pytest-cmake-presets Sep 11, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `^0.0.287`
-> `^0.0.288` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.288?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.288?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.287/0.0.288?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.287/0.0.288?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.0.288`](https://github.com/astral-sh/ruff/releases/tag/v0.0.288)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288)

#### What's Changed

##### Breaking Changes

- Remove emoji identifier support by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7212](https://github.com/astral-sh/ruff/pull/7212)
- Location agnostic GitLab fingerprints by
[@&#8203;gregersn](https://github.com/gregersn) in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)

##### Rules

-   \[`ruff`]
- `RUF001`: Remove autofix for ambiguous unicode rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7168](https://github.com/astral-sh/ruff/pull/7168)

##### Settings

-   \[`flake8-self`]
- `SLF001`: Add `extend-ignore-names` option by
[@&#8203;jaap3](https://github.com/jaap3) in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)

##### Bug Fixes

-   \[`flake8-bugbear`]
- `B006`: Add newline if fix is at end-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7090](https://github.com/astral-sh/ruff/pull/7090)
- `B006`: Fix function docstring followed by whitespace but no newline
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7160](https://github.com/astral-sh/ruff/pull/7160)
- `B009`: Parenthesize expressions when converting to attribute access
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7091](https://github.com/astral-sh/ruff/pull/7091)
- `B009`, `B010`: Fix `getattr` calls on `int` literals by
[@&#8203;density](https://github.com/density) in
[https://github.com/astral-sh/ruff/pull/7057](https://github.com/astral-sh/ruff/pull/7057)
- `B013`: Supported starred exceptions in length-one tuple detection by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7080](https://github.com/astral-sh/ruff/pull/7080)
- `B013`: Insert required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7148](https://github.com/astral-sh/ruff/pull/7148)
-   \[`flake8-comprehensions`]
- `C402`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7152](https://github.com/astral-sh/ruff/pull/7152)
- `C404` Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7185](https://github.com/astral-sh/ruff/pull/7185)
- `C416` Add required space to fix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7204](https://github.com/astral-sh/ruff/pull/7204)
- `C417`: Support length-2 lists in dictionary comprehension rewrites by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7081](https://github.com/astral-sh/ruff/pull/7081)
- `C417`: Parenthesize targets if necessary by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7189](https://github.com/astral-sh/ruff/pull/7189)
-   \[`flake8-return`]
- `RET504`: Add space after return when inlining number by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7116](https://github.com/astral-sh/ruff/pull/7116)
-   \[`flake8-simplify`]
- `SIM105`: Avoid attempting to fix violations with multi-statement
lines by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7191](https://github.com/astral-sh/ruff/pull/7191)
- `SIM105` Avoid inserting an extra newline for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7221](https://github.com/astral-sh/ruff/pull/7221)
- `SIM118`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7150](https://github.com/astral-sh/ruff/pull/7150)
- `SIM118`: delete `.keys()` rather than replace expression by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7223](https://github.com/astral-sh/ruff/pull/7223)
- `SIM210`: Retain parentheses when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7118](https://github.com/astral-sh/ruff/pull/7118)
- `SIM222`: Add parentheses when simplifying conditions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7117](https://github.com/astral-sh/ruff/pull/7117)
- `SIM300`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7167](https://github.com/astral-sh/ruff/pull/7167)
-   \[`flake8-pytest-style`]
- `PT018`: Split within `not`, rather than outside of `not` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7151](https://github.com/astral-sh/ruff/pull/7151)
-   \[`flynt`]
- `FLY002`: Add required space for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7222](https://github.com/astral-sh/ruff/pull/7222)
-   \[`numpy`]
- `NPY001`: Avoid attempting to fix with overridden builtins by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7187](https://github.com/astral-sh/ruff/pull/7187)
- `NPY003`: Use symbol import for replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7083](https://github.com/astral-sh/ruff/pull/7083)
-   \[`pandas-vet`]
- `PD002`: Handle parenthesized calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7111](https://github.com/astral-sh/ruff/pull/7111)
-   \[`pep8-naming`]
- `N806`: Avoid triggering on `TypeAlias` assignments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7119](https://github.com/astral-sh/ruff/pull/7119)
-   \[`pydocstyle`]
- `D204`: Fix when there's a semicolon after a docstring by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7174](https://github.com/astral-sh/ruff/pull/7174)
- `D213`, `D400`: Ignore single quote docstrings with newline escape by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7173](https://github.com/astral-sh/ruff/pull/7173)
- `D417`: Fix error with function docstrings with dashed lines by
[@&#8203;eronnen](https://github.com/eronnen) in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)
-   \[`pyflakes`]
- `F401`: Avoid panic with noqa import name by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7260](https://github.com/astral-sh/ruff/pull/7260)
- `F841`: Expand fixes to handle parenthesized targets by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7110](https://github.com/astral-sh/ruff/pull/7110)
-   \[`pylint`]
- `PLW3301`: Copy the starred argument as is for autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7177](https://github.com/astral-sh/ruff/pull/7177)
-   \[`pyupgrade`]
- `UP006` and `UP007`: Add required space to fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7202](https://github.com/astral-sh/ruff/pull/7202)
- `UP007`: Avoid attempting to fix invalid `Optional` annotations by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7079](https://github.com/astral-sh/ruff/pull/7079)
- `UP007`: Fix syntax error in autofix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7137](https://github.com/astral-sh/ruff/pull/7137)
- `UP021`: Avoid adding duplicate `text` keyword to `subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7112](https://github.com/astral-sh/ruff/pull/7112)
- `UP022`: Avoid adding duplicate `capture_output` keyword to
`subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7113](https://github.com/astral-sh/ruff/pull/7113)
- `UP028`: Support parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7114](https://github.com/astral-sh/ruff/pull/7114)
- `UP022`: Avoid fixing when `capture_output` is provided by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7149](https://github.com/astral-sh/ruff/pull/7149)
- `UP024`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7171](https://github.com/astral-sh/ruff/pull/7171)
-   \[`ruff`]
- `RUF017`: Avoid duplicate fixes for multi-import imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7063](https://github.com/astral-sh/ruff/pull/7063)
- Fix named expression precedence in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7170](https://github.com/astral-sh/ruff/pull/7170)
- Fix precedence of annotated assignments in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7115](https://github.com/astral-sh/ruff/pull/7115)
- Update identifier Unicode character validation to match Python spec by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/7209](https://github.com/astral-sh/ruff/pull/7209)

##### Other Changes

- Added argfile test and documentation by
[@&#8203;njgrisafi](https://github.com/njgrisafi) in
[https://github.com/astral-sh/ruff/pull/7138](https://github.com/astral-sh/ruff/pull/7138)

#### New Contributors

- [@&#8203;oliviacrain](https://github.com/oliviacrain) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7093](https://github.com/astral-sh/ruff/pull/7093)
- [@&#8203;dalgarno](https://github.com/dalgarno) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7108](https://github.com/astral-sh/ruff/pull/7108)
- [@&#8203;manmartgarc](https://github.com/manmartgarc) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7179](https://github.com/astral-sh/ruff/pull/7179)
- [@&#8203;jaap3](https://github.com/jaap3) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)
- [@&#8203;gregersn](https://github.com/gregersn) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)
- [@&#8203;eronnen](https://github.com/eronnen) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)

**Full Changelog**:
astral-sh/ruff@v0.0.287...v0.0.288

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ixm-one/pytest-cmake-presets).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/pyrainbird Sep 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.287`
-> `==0.0.289` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.287/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.287/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.0.289`](https://github.com/astral-sh/ruff/releases/tag/v0.0.289)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.288...v0.0.289)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.289 -->

#### What's Changed

##### Bug Fixes

- Invert condition for < and <= in outdated version block by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7284](https://github.com/astral-sh/ruff/pull/7284)
- Ignore `@override` method when enforcing `bad-dunder-name` rule by
[@&#8203;brendonh8](https://github.com/brendonh8) in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)
- Add `NotebookIndex` to the cache by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6863](https://github.com/astral-sh/ruff/pull/6863)

##### Preview

This release includes a new preview mode which can be used to opt-in to
unstable rules and features.

- Update rule selection to respect preview mode by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7195](https://github.com/astral-sh/ruff/pull/7195)
- Display the `--preview` option in the CLI help menu by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7274](https://github.com/astral-sh/ruff/pull/7274)

See the [documentation](https://beta.ruff.rs/docs/preview/) and
[versioning
discussion](https://github.com/astral-sh/ruff/discussions/6998) for
more details.

#### New Contributors

- [@&#8203;brendonh8](https://github.com/brendonh8) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)

**Full Changelog**:
astral-sh/ruff@v0.0.288...v0.0.289

###
[`v0.0.288`](https://github.com/astral-sh/ruff/releases/tag/v0.0.288)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288)

#### What's Changed

##### Breaking Changes

- Remove emoji identifier support by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7212](https://github.com/astral-sh/ruff/pull/7212)
- Location agnostic GitLab fingerprints by
[@&#8203;gregersn](https://github.com/gregersn) in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)

##### Rules

-   \[`ruff`]
- `RUF001`: Remove autofix for ambiguous unicode rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7168](https://github.com/astral-sh/ruff/pull/7168)

##### Settings

-   \[`flake8-self`]
- `SLF001`: Add `extend-ignore-names` option by
[@&#8203;jaap3](https://github.com/jaap3) in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)

##### Bug Fixes

-   \[`flake8-bugbear`]
- `B006`: Add newline if fix is at end-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7090](https://github.com/astral-sh/ruff/pull/7090)
- `B006`: Fix function docstring followed by whitespace but no newline
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7160](https://github.com/astral-sh/ruff/pull/7160)
- `B009`: Parenthesize expressions when converting to attribute access
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7091](https://github.com/astral-sh/ruff/pull/7091)
- `B009`, `B010`: Fix `getattr` calls on `int` literals by
[@&#8203;density](https://github.com/density) in
[https://github.com/astral-sh/ruff/pull/7057](https://github.com/astral-sh/ruff/pull/7057)
- `B013`: Supported starred exceptions in length-one tuple detection by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7080](https://github.com/astral-sh/ruff/pull/7080)
- `B013`: Insert required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7148](https://github.com/astral-sh/ruff/pull/7148)
-   \[`flake8-comprehensions`]
- `C402`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7152](https://github.com/astral-sh/ruff/pull/7152)
- `C404` Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7185](https://github.com/astral-sh/ruff/pull/7185)
- `C416` Add required space to fix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7204](https://github.com/astral-sh/ruff/pull/7204)
- `C417`: Support length-2 lists in dictionary comprehension rewrites by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7081](https://github.com/astral-sh/ruff/pull/7081)
- `C417`: Parenthesize targets if necessary by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7189](https://github.com/astral-sh/ruff/pull/7189)
-   \[`flake8-return`]
- `RET504`: Add space after return when inlining number by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7116](https://github.com/astral-sh/ruff/pull/7116)
-   \[`flake8-simplify`]
- `SIM105`: Avoid attempting to fix violations with multi-statement
lines by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7191](https://github.com/astral-sh/ruff/pull/7191)
- `SIM105` Avoid inserting an extra newline for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7221](https://github.com/astral-sh/ruff/pull/7221)
- `SIM118`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7150](https://github.com/astral-sh/ruff/pull/7150)
- `SIM118`: delete `.keys()` rather than replace expression by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7223](https://github.com/astral-sh/ruff/pull/7223)
- `SIM210`: Retain parentheses when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7118](https://github.com/astral-sh/ruff/pull/7118)
- `SIM222`: Add parentheses when simplifying conditions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7117](https://github.com/astral-sh/ruff/pull/7117)
- `SIM300`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7167](https://github.com/astral-sh/ruff/pull/7167)
-   \[`flake8-pytest-style`]
- `PT018`: Split within `not`, rather than outside of `not` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7151](https://github.com/astral-sh/ruff/pull/7151)
-   \[`flynt`]
- `FLY002`: Add required space for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7222](https://github.com/astral-sh/ruff/pull/7222)
-   \[`numpy`]
- `NPY001`: Avoid attempting to fix with overridden builtins by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7187](https://github.com/astral-sh/ruff/pull/7187)
- `NPY003`: Use symbol import for replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7083](https://github.com/astral-sh/ruff/pull/7083)
-   \[`pandas-vet`]
- `PD002`: Handle parenthesized calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7111](https://github.com/astral-sh/ruff/pull/7111)
-   \[`pep8-naming`]
- `N806`: Avoid triggering on `TypeAlias` assignments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7119](https://github.com/astral-sh/ruff/pull/7119)
-   \[`pydocstyle`]
- `D204`: Fix when there's a semicolon after a docstring by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7174](https://github.com/astral-sh/ruff/pull/7174)
- `D213`, `D400`: Ignore single quote docstrings with newline escape by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7173](https://github.com/astral-sh/ruff/pull/7173)
- `D417`: Fix error with function docstrings with dashed lines by
[@&#8203;eronnen](https://github.com/eronnen) in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)
-   \[`pyflakes`]
- `F401`: Avoid panic with noqa import name by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7260](https://github.com/astral-sh/ruff/pull/7260)
- `F841`: Expand fixes to handle parenthesized targets by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7110](https://github.com/astral-sh/ruff/pull/7110)
-   \[`pylint`]
- `PLW3301`: Copy the starred argument as is for autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7177](https://github.com/astral-sh/ruff/pull/7177)
-   \[`pyupgrade`]
- `UP006` and `UP007`: Add required space to fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7202](https://github.com/astral-sh/ruff/pull/7202)
- `UP007`: Avoid attempting to fix invalid `Optional` annotations by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7079](https://github.com/astral-sh/ruff/pull/7079)
- `UP007`: Fix syntax error in autofix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7137](https://github.com/astral-sh/ruff/pull/7137)
- `UP021`: Avoid adding duplicate `text` keyword to `subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7112](https://github.com/astral-sh/ruff/pull/7112)
- `UP022`: Avoid adding duplicate `capture_output` keyword to
`subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7113](https://github.com/astral-sh/ruff/pull/7113)
- `UP028`: Support parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7114](https://github.com/astral-sh/ruff/pull/7114)
- `UP022`: Avoid fixing when `capture_output` is provided by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7149](https://github.com/astral-sh/ruff/pull/7149)
- `UP024`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7171](https://github.com/astral-sh/ruff/pull/7171)
-   \[`ruff`]
- `RUF017`: Avoid duplicate fixes for multi-import imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7063](https://github.com/astral-sh/ruff/pull/7063)
- Fix named expression precedence in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7170](https://github.com/astral-sh/ruff/pull/7170)
- Fix precedence of annotated assignments in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7115](https://github.com/astral-sh/ruff/pull/7115)
- Update identifier Unicode character validation to match Python spec by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/7209](https://github.com/astral-sh/ruff/pull/7209)

##### Other Changes

- Added argfile test and documentation by
[@&#8203;njgrisafi](https://github.com/njgrisafi) in
[https://github.com/astral-sh/ruff/pull/7138](https://github.com/astral-sh/ruff/pull/7138)

#### New Contributors

- [@&#8203;oliviacrain](https://github.com/oliviacrain) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7093](https://github.com/astral-sh/ruff/pull/7093)
- [@&#8203;dalgarno](https://github.com/dalgarno) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7108](https://github.com/astral-sh/ruff/pull/7108)
- [@&#8203;manmartgarc](https://github.com/manmartgarc) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7179](https://github.com/astral-sh/ruff/pull/7179)
- [@&#8203;jaap3](https://github.com/jaap3) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)
- [@&#8203;gregersn](https://github.com/gregersn) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)
- [@&#8203;eronnen](https://github.com/eronnen) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)

**Full Changelog**:
astral-sh/ruff@v0.0.287...v0.0.288

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/allenporter/pyrainbird).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/flux-local Sep 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.287`
-> `==0.0.289` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.287/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.287/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.0.289`](https://github.com/astral-sh/ruff/releases/tag/v0.0.289)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.288...v0.0.289)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.289 -->

#### What's Changed

##### Bug Fixes

- Invert condition for < and <= in outdated version block by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7284](https://github.com/astral-sh/ruff/pull/7284)
- Ignore `@override` method when enforcing `bad-dunder-name` rule by
[@&#8203;brendonh8](https://github.com/brendonh8) in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)
- Add `NotebookIndex` to the cache by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6863](https://github.com/astral-sh/ruff/pull/6863)

##### Preview

This release includes a new preview mode which can be used to opt-in to
unstable rules and features.

- Update rule selection to respect preview mode by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7195](https://github.com/astral-sh/ruff/pull/7195)
- Display the `--preview` option in the CLI help menu by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7274](https://github.com/astral-sh/ruff/pull/7274)

See the [documentation](https://beta.ruff.rs/docs/preview/) and
[versioning
discussion](https://github.com/astral-sh/ruff/discussions/6998) for
more details.

#### New Contributors

- [@&#8203;brendonh8](https://github.com/brendonh8) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)

**Full Changelog**:
astral-sh/ruff@v0.0.288...v0.0.289

###
[`v0.0.288`](https://github.com/astral-sh/ruff/releases/tag/v0.0.288)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288)

#### What's Changed

##### Breaking Changes

- Remove emoji identifier support by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7212](https://github.com/astral-sh/ruff/pull/7212)
- Location agnostic GitLab fingerprints by
[@&#8203;gregersn](https://github.com/gregersn) in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)

##### Rules

-   \[`ruff`]
- `RUF001`: Remove autofix for ambiguous unicode rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7168](https://github.com/astral-sh/ruff/pull/7168)

##### Settings

-   \[`flake8-self`]
- `SLF001`: Add `extend-ignore-names` option by
[@&#8203;jaap3](https://github.com/jaap3) in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)

##### Bug Fixes

-   \[`flake8-bugbear`]
- `B006`: Add newline if fix is at end-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7090](https://github.com/astral-sh/ruff/pull/7090)
- `B006`: Fix function docstring followed by whitespace but no newline
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7160](https://github.com/astral-sh/ruff/pull/7160)
- `B009`: Parenthesize expressions when converting to attribute access
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7091](https://github.com/astral-sh/ruff/pull/7091)
- `B009`, `B010`: Fix `getattr` calls on `int` literals by
[@&#8203;density](https://github.com/density) in
[https://github.com/astral-sh/ruff/pull/7057](https://github.com/astral-sh/ruff/pull/7057)
- `B013`: Supported starred exceptions in length-one tuple detection by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7080](https://github.com/astral-sh/ruff/pull/7080)
- `B013`: Insert required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7148](https://github.com/astral-sh/ruff/pull/7148)
-   \[`flake8-comprehensions`]
- `C402`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7152](https://github.com/astral-sh/ruff/pull/7152)
- `C404` Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7185](https://github.com/astral-sh/ruff/pull/7185)
- `C416` Add required space to fix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7204](https://github.com/astral-sh/ruff/pull/7204)
- `C417`: Support length-2 lists in dictionary comprehension rewrites by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7081](https://github.com/astral-sh/ruff/pull/7081)
- `C417`: Parenthesize targets if necessary by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7189](https://github.com/astral-sh/ruff/pull/7189)
-   \[`flake8-return`]
- `RET504`: Add space after return when inlining number by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7116](https://github.com/astral-sh/ruff/pull/7116)
-   \[`flake8-simplify`]
- `SIM105`: Avoid attempting to fix violations with multi-statement
lines by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7191](https://github.com/astral-sh/ruff/pull/7191)
- `SIM105` Avoid inserting an extra newline for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7221](https://github.com/astral-sh/ruff/pull/7221)
- `SIM118`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7150](https://github.com/astral-sh/ruff/pull/7150)
- `SIM118`: delete `.keys()` rather than replace expression by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7223](https://github.com/astral-sh/ruff/pull/7223)
- `SIM210`: Retain parentheses when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7118](https://github.com/astral-sh/ruff/pull/7118)
- `SIM222`: Add parentheses when simplifying conditions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7117](https://github.com/astral-sh/ruff/pull/7117)
- `SIM300`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7167](https://github.com/astral-sh/ruff/pull/7167)
-   \[`flake8-pytest-style`]
- `PT018`: Split within `not`, rather than outside of `not` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7151](https://github.com/astral-sh/ruff/pull/7151)
-   \[`flynt`]
- `FLY002`: Add required space for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7222](https://github.com/astral-sh/ruff/pull/7222)
-   \[`numpy`]
- `NPY001`: Avoid attempting to fix with overridden builtins by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7187](https://github.com/astral-sh/ruff/pull/7187)
- `NPY003`: Use symbol import for replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7083](https://github.com/astral-sh/ruff/pull/7083)
-   \[`pandas-vet`]
- `PD002`: Handle parenthesized calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7111](https://github.com/astral-sh/ruff/pull/7111)
-   \[`pep8-naming`]
- `N806`: Avoid triggering on `TypeAlias` assignments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7119](https://github.com/astral-sh/ruff/pull/7119)
-   \[`pydocstyle`]
- `D204`: Fix when there's a semicolon after a docstring by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7174](https://github.com/astral-sh/ruff/pull/7174)
- `D213`, `D400`: Ignore single quote docstrings with newline escape by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7173](https://github.com/astral-sh/ruff/pull/7173)
- `D417`: Fix error with function docstrings with dashed lines by
[@&#8203;eronnen](https://github.com/eronnen) in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)
-   \[`pyflakes`]
- `F401`: Avoid panic with noqa import name by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7260](https://github.com/astral-sh/ruff/pull/7260)
- `F841`: Expand fixes to handle parenthesized targets by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7110](https://github.com/astral-sh/ruff/pull/7110)
-   \[`pylint`]
- `PLW3301`: Copy the starred argument as is for autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7177](https://github.com/astral-sh/ruff/pull/7177)
-   \[`pyupgrade`]
- `UP006` and `UP007`: Add required space to fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7202](https://github.com/astral-sh/ruff/pull/7202)
- `UP007`: Avoid attempting to fix invalid `Optional` annotations by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7079](https://github.com/astral-sh/ruff/pull/7079)
- `UP007`: Fix syntax error in autofix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7137](https://github.com/astral-sh/ruff/pull/7137)
- `UP021`: Avoid adding duplicate `text` keyword to `subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7112](https://github.com/astral-sh/ruff/pull/7112)
- `UP022`: Avoid adding duplicate `capture_output` keyword to
`subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7113](https://github.com/astral-sh/ruff/pull/7113)
- `UP028`: Support parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7114](https://github.com/astral-sh/ruff/pull/7114)
- `UP022`: Avoid fixing when `capture_output` is provided by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7149](https://github.com/astral-sh/ruff/pull/7149)
- `UP024`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7171](https://github.com/astral-sh/ruff/pull/7171)
-   \[`ruff`]
- `RUF017`: Avoid duplicate fixes for multi-import imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7063](https://github.com/astral-sh/ruff/pull/7063)
- Fix named expression precedence in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7170](https://github.com/astral-sh/ruff/pull/7170)
- Fix precedence of annotated assignments in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7115](https://github.com/astral-sh/ruff/pull/7115)
- Update identifier Unicode character validation to match Python spec by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/7209](https://github.com/astral-sh/ruff/pull/7209)

##### Other Changes

- Added argfile test and documentation by
[@&#8203;njgrisafi](https://github.com/njgrisafi) in
[https://github.com/astral-sh/ruff/pull/7138](https://github.com/astral-sh/ruff/pull/7138)

#### New Contributors

- [@&#8203;oliviacrain](https://github.com/oliviacrain) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7093](https://github.com/astral-sh/ruff/pull/7093)
- [@&#8203;dalgarno](https://github.com/dalgarno) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7108](https://github.com/astral-sh/ruff/pull/7108)
- [@&#8203;manmartgarc](https://github.com/manmartgarc) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7179](https://github.com/astral-sh/ruff/pull/7179)
- [@&#8203;jaap3](https://github.com/jaap3) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)
- [@&#8203;gregersn](https://github.com/gregersn) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)
- [@&#8203;eronnen](https://github.com/eronnen) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)

**Full Changelog**:
astral-sh/ruff@v0.0.287...v0.0.288

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/allenporter/flux-local).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
gatesn referenced this pull request in spiraldb/ziggy-pydust Sep 15, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `^0.0.286`
-> `^0.0.289` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.286/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.286/0.0.289?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.0.289`](https://github.com/astral-sh/ruff/releases/tag/v0.0.289)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.288...v0.0.289)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.289 -->

#### What's Changed

##### Bug Fixes

- Invert condition for < and <= in outdated version block by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7284](https://github.com/astral-sh/ruff/pull/7284)
- Ignore `@override` method when enforcing `bad-dunder-name` rule by
[@&#8203;brendonh8](https://github.com/brendonh8) in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)
- Add `NotebookIndex` to the cache by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6863](https://github.com/astral-sh/ruff/pull/6863)

##### Preview

This release includes a new preview mode which can be used to opt-in to
unstable rules and features.

- Update rule selection to respect preview mode by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7195](https://github.com/astral-sh/ruff/pull/7195)
- Display the `--preview` option in the CLI help menu by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7274](https://github.com/astral-sh/ruff/pull/7274)

See the [documentation](https://beta.ruff.rs/docs/preview/) and
[versioning
discussion](https://github.com/astral-sh/ruff/discussions/6998) for
more details.

#### New Contributors

- [@&#8203;brendonh8](https://github.com/brendonh8) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)

**Full Changelog**:
astral-sh/ruff@v0.0.288...v0.0.289

###
[`v0.0.288`](https://github.com/astral-sh/ruff/releases/tag/v0.0.288)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288)

#### What's Changed

##### Breaking Changes

- Remove emoji identifier support by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7212](https://github.com/astral-sh/ruff/pull/7212)
- Location agnostic GitLab fingerprints by
[@&#8203;gregersn](https://github.com/gregersn) in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)

##### Rules

-   \[`ruff`]
- `RUF001`: Remove autofix for ambiguous unicode rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7168](https://github.com/astral-sh/ruff/pull/7168)

##### Settings

-   \[`flake8-self`]
- `SLF001`: Add `extend-ignore-names` option by
[@&#8203;jaap3](https://github.com/jaap3) in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)

##### Bug Fixes

-   \[`flake8-bugbear`]
- `B006`: Add newline if fix is at end-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7090](https://github.com/astral-sh/ruff/pull/7090)
- `B006`: Fix function docstring followed by whitespace but no newline
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7160](https://github.com/astral-sh/ruff/pull/7160)
- `B009`: Parenthesize expressions when converting to attribute access
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7091](https://github.com/astral-sh/ruff/pull/7091)
- `B009`, `B010`: Fix `getattr` calls on `int` literals by
[@&#8203;density](https://github.com/density) in
[https://github.com/astral-sh/ruff/pull/7057](https://github.com/astral-sh/ruff/pull/7057)
- `B013`: Supported starred exceptions in length-one tuple detection by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7080](https://github.com/astral-sh/ruff/pull/7080)
- `B013`: Insert required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7148](https://github.com/astral-sh/ruff/pull/7148)
-   \[`flake8-comprehensions`]
- `C402`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7152](https://github.com/astral-sh/ruff/pull/7152)
- `C404` Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7185](https://github.com/astral-sh/ruff/pull/7185)
- `C416` Add required space to fix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7204](https://github.com/astral-sh/ruff/pull/7204)
- `C417`: Support length-2 lists in dictionary comprehension rewrites by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7081](https://github.com/astral-sh/ruff/pull/7081)
- `C417`: Parenthesize targets if necessary by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7189](https://github.com/astral-sh/ruff/pull/7189)
-   \[`flake8-return`]
- `RET504`: Add space after return when inlining number by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7116](https://github.com/astral-sh/ruff/pull/7116)
-   \[`flake8-simplify`]
- `SIM105`: Avoid attempting to fix violations with multi-statement
lines by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7191](https://github.com/astral-sh/ruff/pull/7191)
- `SIM105` Avoid inserting an extra newline for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7221](https://github.com/astral-sh/ruff/pull/7221)
- `SIM118`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7150](https://github.com/astral-sh/ruff/pull/7150)
- `SIM118`: delete `.keys()` rather than replace expression by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7223](https://github.com/astral-sh/ruff/pull/7223)
- `SIM210`: Retain parentheses when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7118](https://github.com/astral-sh/ruff/pull/7118)
- `SIM222`: Add parentheses when simplifying conditions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7117](https://github.com/astral-sh/ruff/pull/7117)
- `SIM300`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7167](https://github.com/astral-sh/ruff/pull/7167)
-   \[`flake8-pytest-style`]
- `PT018`: Split within `not`, rather than outside of `not` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7151](https://github.com/astral-sh/ruff/pull/7151)
-   \[`flynt`]
- `FLY002`: Add required space for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7222](https://github.com/astral-sh/ruff/pull/7222)
-   \[`numpy`]
- `NPY001`: Avoid attempting to fix with overridden builtins by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7187](https://github.com/astral-sh/ruff/pull/7187)
- `NPY003`: Use symbol import for replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7083](https://github.com/astral-sh/ruff/pull/7083)
-   \[`pandas-vet`]
- `PD002`: Handle parenthesized calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7111](https://github.com/astral-sh/ruff/pull/7111)
-   \[`pep8-naming`]
- `N806`: Avoid triggering on `TypeAlias` assignments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7119](https://github.com/astral-sh/ruff/pull/7119)
-   \[`pydocstyle`]
- `D204`: Fix when there's a semicolon after a docstring by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7174](https://github.com/astral-sh/ruff/pull/7174)
- `D213`, `D400`: Ignore single quote docstrings with newline escape by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7173](https://github.com/astral-sh/ruff/pull/7173)
- `D417`: Fix error with function docstrings with dashed lines by
[@&#8203;eronnen](https://github.com/eronnen) in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)
-   \[`pyflakes`]
- `F401`: Avoid panic with noqa import name by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7260](https://github.com/astral-sh/ruff/pull/7260)
- `F841`: Expand fixes to handle parenthesized targets by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7110](https://github.com/astral-sh/ruff/pull/7110)
-   \[`pylint`]
- `PLW3301`: Copy the starred argument as is for autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7177](https://github.com/astral-sh/ruff/pull/7177)
-   \[`pyupgrade`]
- `UP006` and `UP007`: Add required space to fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7202](https://github.com/astral-sh/ruff/pull/7202)
- `UP007`: Avoid attempting to fix invalid `Optional` annotations by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7079](https://github.com/astral-sh/ruff/pull/7079)
- `UP007`: Fix syntax error in autofix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7137](https://github.com/astral-sh/ruff/pull/7137)
- `UP021`: Avoid adding duplicate `text` keyword to `subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7112](https://github.com/astral-sh/ruff/pull/7112)
- `UP022`: Avoid adding duplicate `capture_output` keyword to
`subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7113](https://github.com/astral-sh/ruff/pull/7113)
- `UP028`: Support parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7114](https://github.com/astral-sh/ruff/pull/7114)
- `UP022`: Avoid fixing when `capture_output` is provided by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7149](https://github.com/astral-sh/ruff/pull/7149)
- `UP024`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7171](https://github.com/astral-sh/ruff/pull/7171)
-   \[`ruff`]
- `RUF017`: Avoid duplicate fixes for multi-import imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7063](https://github.com/astral-sh/ruff/pull/7063)
- Fix named expression precedence in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7170](https://github.com/astral-sh/ruff/pull/7170)
- Fix precedence of annotated assignments in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7115](https://github.com/astral-sh/ruff/pull/7115)
- Update identifier Unicode character validation to match Python spec by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/7209](https://github.com/astral-sh/ruff/pull/7209)

##### Other Changes

- Added argfile test and documentation by
[@&#8203;njgrisafi](https://github.com/njgrisafi) in
[https://github.com/astral-sh/ruff/pull/7138](https://github.com/astral-sh/ruff/pull/7138)

#### New Contributors

- [@&#8203;oliviacrain](https://github.com/oliviacrain) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7093](https://github.com/astral-sh/ruff/pull/7093)
- [@&#8203;dalgarno](https://github.com/dalgarno) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7108](https://github.com/astral-sh/ruff/pull/7108)
- [@&#8203;manmartgarc](https://github.com/manmartgarc) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7179](https://github.com/astral-sh/ruff/pull/7179)
- [@&#8203;jaap3](https://github.com/jaap3) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)
- [@&#8203;gregersn](https://github.com/gregersn) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)
- [@&#8203;eronnen](https://github.com/eronnen) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)

**Full Changelog**:
astral-sh/ruff@v0.0.287...v0.0.288

###
[`v0.0.287`](https://github.com/astral-sh/ruff/releases/tag/v0.0.287)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.286...v0.0.287)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.287 -->

#### What's Changed

##### Rules

- \[refurb] Implement preview `repeated-append` rule (`FURB113`) by
[@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) in
[https://github.com/astral-sh/ruff/pull/6702](https://github.com/astral-sh/ruff/pull/6702)
- \[refurb] Implement preview `delete-full-slice` rule (`FURB131`) by
[@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) in
[https://github.com/astral-sh/ruff/pull/6897](https://github.com/astral-sh/ruff/pull/6897)
- \[refurb] Implement preview `check-and-remove-from-set` rule
(`FURB132`) by
[@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) in
[https://github.com/astral-sh/ruff/pull/6904](https://github.com/astral-sh/ruff/pull/6904)

##### Bug Fixes

- Expand `PERF401` and `PERF402` with type checks by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/6994](https://github.com/astral-sh/ruff/pull/6994)
- Insert space to avoid syntax error in RSE fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6886](https://github.com/astral-sh/ruff/pull/6886)
- Avoid PEP 604 upgrades that lead to invalid syntax by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6888](https://github.com/astral-sh/ruff/pull/6888)
- Fix ranges for global usages by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6917](https://github.com/astral-sh/ruff/pull/6917)
- Avoid invalid fix for C417 with separate keys and values by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6954](https://github.com/astral-sh/ruff/pull/6954)
- Avoid panic when `typename` is provided as a keyword argument by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6955](https://github.com/astral-sh/ruff/pull/6955)
- Improve compatibility between multi-statement PYI rules by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7024](https://github.com/astral-sh/ruff/pull/7024)
- Fixed panic in `missing_copyright_notice` by
[@&#8203;WindowGenerator](https://github.com/WindowGenerator) in
[https://github.com/astral-sh/ruff/pull/7029](https://github.com/astral-sh/ruff/pull/7029)
- Avoid lexer infinite loop on invalid input by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6937](https://github.com/astral-sh/ruff/pull/6937)
- Fix `WithItem` ranges for parenthesized, non-`as` items by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6782](https://github.com/astral-sh/ruff/pull/6782)

#### New Contributors

- [@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) made
their first contribution in
[https://github.com/astral-sh/ruff/pull/6702](https://github.com/astral-sh/ruff/pull/6702)
- [@&#8203;Anselmoo](https://github.com/Anselmoo) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/6986](https://github.com/astral-sh/ruff/pull/6986)
- [@&#8203;njgrisafi](https://github.com/njgrisafi) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7032](https://github.com/astral-sh/ruff/pull/7032)
- [@&#8203;WindowGenerator](https://github.com/WindowGenerator) made
their first contribution in
[https://github.com/astral-sh/ruff/pull/7029](https://github.com/astral-sh/ruff/pull/7029)

**Full Changelog**:
astral-sh/ruff@v0.0.286...v0.0.287

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/fulcrum-so/ziggy-pydust).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
delta003 referenced this pull request in spiraldb/ziggy-pydust-template Sep 17, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `^0.0.286`
-> `^0.0.290` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.290?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.290?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.286/0.0.290?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.286/0.0.290?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.0.290`](https://github.com/astral-sh/ruff/releases/tag/v0.0.290)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.289...v0.0.290)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.290 -->

#### What's Changed

##### Rules

- Update `deprecated-import` lists based on recent `typing-extensions`
release by [@&#8203;charliermarsh](https://github.com/charliermarsh)
in
[https://github.com/astral-sh/ruff/pull/7356](https://github.com/astral-sh/ruff/pull/7356)
- Add support for bounds, constraints, and explicit variance on generic
type variables to `UP040` by
[@&#8203;nathanwhit](https://github.com/nathanwhit) in
[https://github.com/astral-sh/ruff/pull/6749](https://github.com/astral-sh/ruff/pull/6749)

##### Settings

- Show rule codes in shell tab completion by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7375](https://github.com/astral-sh/ruff/pull/7375)

##### Bug Fixes

- Parenthesize single-generator arguments when adding reverse keyword by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7365](https://github.com/astral-sh/ruff/pull/7365)
- Invert reverse argument regardless of whether it's a boolean by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7372](https://github.com/astral-sh/ruff/pull/7372)
- Extend `C416` to catch tuple unpacking by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7363](https://github.com/astral-sh/ruff/pull/7363)
- Allow `NURSERY` rule selctor in JSON Schema by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7374](https://github.com/astral-sh/ruff/pull/7374)
- Avoid flagging single-quoted docstrings with continuations for
multi-line rules by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7392](https://github.com/astral-sh/ruff/pull/7392)
- Treat whitespace-only line as blank for `D411` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7351](https://github.com/astral-sh/ruff/pull/7351)

##### Preview

[*What's this section?*](https://beta.ruff.rs/docs/preview/)

- \[`flake8-logging`] New rule `undocumented-warn` (`LOG009`) by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/7249](https://github.com/astral-sh/ruff/pull/7249)
- \[`flake8-logging`] New rule `direct-logger-instantiation` (`LOG001`)
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7397](https://github.com/astral-sh/ruff/pull/7397)
- \[`flake8-logging`] New plugin `flake8_logging` (`LOG`) by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/7249](https://github.com/astral-sh/ruff/pull/7249)
- \[`perflint`] Add `manual-dict-comprehsion` (`PERF403`) by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/6132](https://github.com/astral-sh/ruff/pull/6132)
- \[`pylint`] New rule `too-many-public-methods` (`PLR0904`) by
[@&#8203;jelly](https://github.com/jelly) in
[https://github.com/astral-sh/ruff/pull/6179](https://github.com/astral-sh/ruff/pull/6179)
- \[`refurb`] New rule `no-slice-copy` (`FURB145`) by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/7007](https://github.com/astral-sh/ruff/pull/7007)
- Add warnings for nursery and preview rule selection by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7210](https://github.com/astral-sh/ruff/pull/7210)
- Remove the `PREVIEW` rule selector by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7389](https://github.com/astral-sh/ruff/pull/7389)
- [`pre-commit`
support](https://github.com/astral-sh/ruff-pre-commit#using-ruffs-formatter-unstable)
for the [alpha
formatter](https://github.com/astral-sh/ruff/discussions/7310) by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff-pre-commit/pull/50](https://github.com/astral-sh/ruff-pre-commit/pull/50)

#### New Contributors

- [@&#8203;nathanwhit](https://github.com/nathanwhit) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/6749](https://github.com/astral-sh/ruff/pull/6749)

**Full Changelog**:
astral-sh/ruff@v0.0.289...v0.0.290

###
[`v0.0.289`](https://github.com/astral-sh/ruff/releases/tag/v0.0.289)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.288...v0.0.289)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.289 -->

#### What's Changed

##### Bug Fixes

- Invert condition for < and <= in outdated version block by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7284](https://github.com/astral-sh/ruff/pull/7284)
- Ignore `@override` method when enforcing `bad-dunder-name` rule by
[@&#8203;brendonh8](https://github.com/brendonh8) in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)
- Add `NotebookIndex` to the cache by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6863](https://github.com/astral-sh/ruff/pull/6863)

##### Preview

This release includes a new preview mode which can be used to opt-in to
unstable rules and features.

- Update rule selection to respect preview mode by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7195](https://github.com/astral-sh/ruff/pull/7195)
- Display the `--preview` option in the CLI help menu by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7274](https://github.com/astral-sh/ruff/pull/7274)

See the [documentation](https://beta.ruff.rs/docs/preview/) and
[versioning
discussion](https://github.com/astral-sh/ruff/discussions/6998) for
more details.

#### New Contributors

- [@&#8203;brendonh8](https://github.com/brendonh8) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7224](https://github.com/astral-sh/ruff/pull/7224)

**Full Changelog**:
astral-sh/ruff@v0.0.288...v0.0.289

###
[`v0.0.288`](https://github.com/astral-sh/ruff/releases/tag/v0.0.288)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.287...v0.0.288)

#### What's Changed

##### Breaking Changes

- Remove emoji identifier support by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/7212](https://github.com/astral-sh/ruff/pull/7212)
- Location agnostic GitLab fingerprints by
[@&#8203;gregersn](https://github.com/gregersn) in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)

##### Rules

-   \[`ruff`]
- `RUF001`: Remove autofix for ambiguous unicode rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7168](https://github.com/astral-sh/ruff/pull/7168)

##### Settings

-   \[`flake8-self`]
- `SLF001`: Add `extend-ignore-names` option by
[@&#8203;jaap3](https://github.com/jaap3) in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)

##### Bug Fixes

-   \[`flake8-bugbear`]
- `B006`: Add newline if fix is at end-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7090](https://github.com/astral-sh/ruff/pull/7090)
- `B006`: Fix function docstring followed by whitespace but no newline
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/7160](https://github.com/astral-sh/ruff/pull/7160)
- `B009`: Parenthesize expressions when converting to attribute access
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7091](https://github.com/astral-sh/ruff/pull/7091)
- `B009`, `B010`: Fix `getattr` calls on `int` literals by
[@&#8203;density](https://github.com/density) in
[https://github.com/astral-sh/ruff/pull/7057](https://github.com/astral-sh/ruff/pull/7057)
- `B013`: Supported starred exceptions in length-one tuple detection by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7080](https://github.com/astral-sh/ruff/pull/7080)
- `B013`: Insert required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7148](https://github.com/astral-sh/ruff/pull/7148)
-   \[`flake8-comprehensions`]
- `C402`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7152](https://github.com/astral-sh/ruff/pull/7152)
- `C404` Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7185](https://github.com/astral-sh/ruff/pull/7185)
- `C416` Add required space to fix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7204](https://github.com/astral-sh/ruff/pull/7204)
- `C417`: Support length-2 lists in dictionary comprehension rewrites by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7081](https://github.com/astral-sh/ruff/pull/7081)
- `C417`: Parenthesize targets if necessary by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7189](https://github.com/astral-sh/ruff/pull/7189)
-   \[`flake8-return`]
- `RET504`: Add space after return when inlining number by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7116](https://github.com/astral-sh/ruff/pull/7116)
-   \[`flake8-simplify`]
- `SIM105`: Avoid attempting to fix violations with multi-statement
lines by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7191](https://github.com/astral-sh/ruff/pull/7191)
- `SIM105` Avoid inserting an extra newline for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7221](https://github.com/astral-sh/ruff/pull/7221)
- `SIM118`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7150](https://github.com/astral-sh/ruff/pull/7150)
- `SIM118`: delete `.keys()` rather than replace expression by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7223](https://github.com/astral-sh/ruff/pull/7223)
- `SIM210`: Retain parentheses when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7118](https://github.com/astral-sh/ruff/pull/7118)
- `SIM222`: Add parentheses when simplifying conditions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7117](https://github.com/astral-sh/ruff/pull/7117)
- `SIM300`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7167](https://github.com/astral-sh/ruff/pull/7167)
-   \[`flake8-pytest-style`]
- `PT018`: Split within `not`, rather than outside of `not` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7151](https://github.com/astral-sh/ruff/pull/7151)
-   \[`flynt`]
- `FLY002`: Add required space for fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7222](https://github.com/astral-sh/ruff/pull/7222)
-   \[`numpy`]
- `NPY001`: Avoid attempting to fix with overridden builtins by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7187](https://github.com/astral-sh/ruff/pull/7187)
- `NPY003`: Use symbol import for replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7083](https://github.com/astral-sh/ruff/pull/7083)
-   \[`pandas-vet`]
- `PD002`: Handle parenthesized calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7111](https://github.com/astral-sh/ruff/pull/7111)
-   \[`pep8-naming`]
- `N806`: Avoid triggering on `TypeAlias` assignments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7119](https://github.com/astral-sh/ruff/pull/7119)
-   \[`pydocstyle`]
- `D204`: Fix when there's a semicolon after a docstring by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7174](https://github.com/astral-sh/ruff/pull/7174)
- `D213`, `D400`: Ignore single quote docstrings with newline escape by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/7173](https://github.com/astral-sh/ruff/pull/7173)
- `D417`: Fix error with function docstrings with dashed lines by
[@&#8203;eronnen](https://github.com/eronnen) in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)
-   \[`pyflakes`]
- `F401`: Avoid panic with noqa import name by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7260](https://github.com/astral-sh/ruff/pull/7260)
- `F841`: Expand fixes to handle parenthesized targets by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7110](https://github.com/astral-sh/ruff/pull/7110)
-   \[`pylint`]
- `PLW3301`: Copy the starred argument as is for autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/7177](https://github.com/astral-sh/ruff/pull/7177)
-   \[`pyupgrade`]
- `UP006` and `UP007`: Add required space to fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7202](https://github.com/astral-sh/ruff/pull/7202)
- `UP007`: Avoid attempting to fix invalid `Optional` annotations by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7079](https://github.com/astral-sh/ruff/pull/7079)
- `UP007`: Fix syntax error in autofix by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7137](https://github.com/astral-sh/ruff/pull/7137)
- `UP021`: Avoid adding duplicate `text` keyword to `subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7112](https://github.com/astral-sh/ruff/pull/7112)
- `UP022`: Avoid adding duplicate `capture_output` keyword to
`subprocess.run` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7113](https://github.com/astral-sh/ruff/pull/7113)
- `UP028`: Support parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7114](https://github.com/astral-sh/ruff/pull/7114)
- `UP022`: Avoid fixing when `capture_output` is provided by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7149](https://github.com/astral-sh/ruff/pull/7149)
- `UP024`: Add required space when fixing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7171](https://github.com/astral-sh/ruff/pull/7171)
-   \[`ruff`]
- `RUF017`: Avoid duplicate fixes for multi-import imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7063](https://github.com/astral-sh/ruff/pull/7063)
- Fix named expression precedence in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7170](https://github.com/astral-sh/ruff/pull/7170)
- Fix precedence of annotated assignments in generator by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7115](https://github.com/astral-sh/ruff/pull/7115)
- Update identifier Unicode character validation to match Python spec by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/7209](https://github.com/astral-sh/ruff/pull/7209)

##### Other Changes

- Added argfile test and documentation by
[@&#8203;njgrisafi](https://github.com/njgrisafi) in
[https://github.com/astral-sh/ruff/pull/7138](https://github.com/astral-sh/ruff/pull/7138)

#### New Contributors

- [@&#8203;oliviacrain](https://github.com/oliviacrain) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7093](https://github.com/astral-sh/ruff/pull/7093)
- [@&#8203;dalgarno](https://github.com/dalgarno) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7108](https://github.com/astral-sh/ruff/pull/7108)
- [@&#8203;manmartgarc](https://github.com/manmartgarc) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/7179](https://github.com/astral-sh/ruff/pull/7179)
- [@&#8203;jaap3](https://github.com/jaap3) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7194](https://github.com/astral-sh/ruff/pull/7194)
- [@&#8203;gregersn](https://github.com/gregersn) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7203](https://github.com/astral-sh/ruff/pull/7203)
- [@&#8203;eronnen](https://github.com/eronnen) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7251](https://github.com/astral-sh/ruff/pull/7251)

**Full Changelog**:
astral-sh/ruff@v0.0.287...v0.0.288

###
[`v0.0.287`](https://github.com/astral-sh/ruff/releases/tag/v0.0.287)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.286...v0.0.287)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.287 -->

#### What's Changed

##### Rules

- \[refurb] Implement preview `repeated-append` rule (`FURB113`) by
[@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) in
[https://github.com/astral-sh/ruff/pull/6702](https://github.com/astral-sh/ruff/pull/6702)
- \[refurb] Implement preview `delete-full-slice` rule (`FURB131`) by
[@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) in
[https://github.com/astral-sh/ruff/pull/6897](https://github.com/astral-sh/ruff/pull/6897)
- \[refurb] Implement preview `check-and-remove-from-set` rule
(`FURB132`) by
[@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) in
[https://github.com/astral-sh/ruff/pull/6904](https://github.com/astral-sh/ruff/pull/6904)

##### Bug Fixes

- Expand `PERF401` and `PERF402` with type checks by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/6994](https://github.com/astral-sh/ruff/pull/6994)
- Insert space to avoid syntax error in RSE fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6886](https://github.com/astral-sh/ruff/pull/6886)
- Avoid PEP 604 upgrades that lead to invalid syntax by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6888](https://github.com/astral-sh/ruff/pull/6888)
- Fix ranges for global usages by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6917](https://github.com/astral-sh/ruff/pull/6917)
- Avoid invalid fix for C417 with separate keys and values by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6954](https://github.com/astral-sh/ruff/pull/6954)
- Avoid panic when `typename` is provided as a keyword argument by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6955](https://github.com/astral-sh/ruff/pull/6955)
- Improve compatibility between multi-statement PYI rules by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/7024](https://github.com/astral-sh/ruff/pull/7024)
- Fixed panic in `missing_copyright_notice` by
[@&#8203;WindowGenerator](https://github.com/WindowGenerator) in
[https://github.com/astral-sh/ruff/pull/7029](https://github.com/astral-sh/ruff/pull/7029)
- Avoid lexer infinite loop on invalid input by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6937](https://github.com/astral-sh/ruff/pull/6937)
- Fix `WithItem` ranges for parenthesized, non-`as` items by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6782](https://github.com/astral-sh/ruff/pull/6782)

#### New Contributors

- [@&#8203;SavchenkoValeriy](https://github.com/SavchenkoValeriy) made
their first contribution in
[https://github.com/astral-sh/ruff/pull/6702](https://github.com/astral-sh/ruff/pull/6702)
- [@&#8203;Anselmoo](https://github.com/Anselmoo) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/6986](https://github.com/astral-sh/ruff/pull/6986)
- [@&#8203;njgrisafi](https://github.com/njgrisafi) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/7032](https://github.com/astral-sh/ruff/pull/7032)
- [@&#8203;WindowGenerator](https://github.com/WindowGenerator) made
their first contribution in
[https://github.com/astral-sh/ruff/pull/7029](https://github.com/astral-sh/ruff/pull/7029)

**Full Changelog**:
astral-sh/ruff@v0.0.286...v0.0.287

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/fulcrum-so/ziggy-pydust-template).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working fuzzer Surfaced via fuzzing.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rule SIM210 cause autofix error
1 participant