-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Mark some deprecated-import
fixes as unsafe
#8840
Conversation
|
code | total | + violation | - violation | + fix | - fix |
---|---|---|---|---|---|
UP035 | 362 | 0 | 0 | 0 | 362 |
Linter (preview)
ℹ️ ecosystem check detected linter changes. (+0 -0 violations, +0 -356 fixes in 41 projects)
bokeh/bokeh (+0 -0 violations, +0 -112 fixes)
ruff check --no-cache --exit-zero --preview --select ALL
+ release/action.py:13:1: UP035 Import from `collections.abc` instead: `Sequence` - release/action.py:13:1: UP035 [*] Import from `collections.abc` instead: `Sequence` + release/pipeline.py:13:1: UP035 Import from `collections.abc` instead: `Sequence` - release/pipeline.py:13:1: UP035 [*] Import from `collections.abc` instead: `Sequence` + release/ui.py:14:1: UP035 Import from `collections.abc` instead: `Sequence` - release/ui.py:14:1: UP035 [*] Import from `collections.abc` instead: `Sequence` + src/bokeh/application/handlers/directory.py:59:1: UP035 Import from `collections.abc` instead: `Coroutine` - src/bokeh/application/handlers/directory.py:59:1: UP035 [*] Import from `collections.abc` instead: `Coroutine` + src/bokeh/client/websocket.py:25:1: UP035 Import from `collections.abc` instead: `Awaitable` - src/bokeh/client/websocket.py:25:1: UP035 [*] Import from `collections.abc` instead: `Awaitable` + src/bokeh/colors/util.py:24:1: UP035 Import from `collections.abc` instead: `Iterator` - src/bokeh/colors/util.py:24:1: UP035 [*] Import from `collections.abc` instead: `Iterator` + src/bokeh/command/bootstrap.py:48:1: UP035 Import from `collections.abc` instead: `Sequence` - src/bokeh/command/bootstrap.py:48:1: UP035 [*] Import from `collections.abc` instead: `Sequence` + src/bokeh/command/subcommand.py:27:1: UP035 Import from `collections.abc` instead: `Sequence` ... 97 additional changes omitted for project
demisto/content (+0 -0 violations, +0 -244 fixes)
ruff check --no-cache --exit-zero --preview
+ Packs/AMP/Integrations/AMPv2/AMPv2.py:8:1: UP035 Import from `collections.abc` instead: `Callable`, `MutableMapping`, `MutableSequence` - Packs/AMP/Integrations/AMPv2/AMPv2.py:8:1: UP035 [*] Import from `collections.abc` instead: `Callable`, `MutableMapping`, `MutableSequence` + Packs/AWS-Lambda/Integrations/AWS_Lambda/AWS_Lambda_test.py:2:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AWS-Lambda/Integrations/AWS_Lambda/AWS_Lambda_test.py:2:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/AWS-SecurityHub/Integrations/AWSSecurityHubEventCollector/AWSSecurityHubEventCollector.py:4:1: UP035 Import from `collections.abc` instead: `Iterator` - Packs/AWS-SecurityHub/Integrations/AWSSecurityHubEventCollector/AWSSecurityHubEventCollector.py:4:1: UP035 [*] Import from `collections.abc` instead: `Iterator` + Packs/AWS_WAF/Integrations/AWSWAF/AWSWAF.py:5:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AWS_WAF/Integrations/AWSWAF/AWSWAF.py:5:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/Akamai_SIEM/Integrations/Akamai_SIEM/Akamai_SIEM.py:9:1: UP035 Import from `collections.abc` instead: `Sequence` - Packs/Akamai_SIEM/Integrations/Akamai_SIEM/Akamai_SIEM.py:9:1: UP035 [*] Import from `collections.abc` instead: `Sequence` + Packs/Arkime/Integrations/Arkime/Arkime.py:6:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/Arkime/Integrations/Arkime/Arkime.py:6:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/Arkime/Integrations/Arkime/Arkime_test.py:3:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/Arkime/Integrations/Arkime/Arkime_test.py:3:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/AtlassianConfluenceCloud/Integrations/AtlassianConfluenceCloud/AtlassianConfluenceCloud.py:5:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AtlassianConfluenceCloud/Integrations/AtlassianConfluenceCloud/AtlassianConfluenceCloud.py:5:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/AutoFocus/Integrations/AutofocusV2/AutofocusV2.py:11:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AutoFocus/Integrations/AutofocusV2/AutofocusV2.py:11:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/AzureStorageContainer/Integrations/AzureStorageContainer/AzureStorageContainer.py:6:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AzureStorageContainer/Integrations/AzureStorageContainer/AzureStorageContainer.py:6:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/AzureStorageFileShare/Integrations/AzureStorageFileShare/AzureStorageFileShare.py:6:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AzureStorageFileShare/Integrations/AzureStorageFileShare/AzureStorageFileShare.py:6:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/AzureStorageQueue/Integrations/AzureStorageQueue/AzureStorageQueue.py:3:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/AzureStorageQueue/Integrations/AzureStorageQueue/AzureStorageQueue.py:3:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/BmcHelixRemedyForce/Integrations/BmcHelixRemedyForce/BmcHelixRemedyForce.py:5:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/BmcHelixRemedyForce/Integrations/BmcHelixRemedyForce/BmcHelixRemedyForce.py:5:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/BmcITSM/Integrations/BmcITSM/BmcITSM.py:6:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/BmcITSM/Integrations/BmcITSM/BmcITSM.py:6:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/CTIX/Integrations/CTIXv3/CTIXv3.py:7:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/CTIX/Integrations/CTIXv3/CTIXv3.py:7:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/Carbon_Black_Enterprise_Response/Integrations/CarbonBlackResponseV2/CarbonBlackResponseV2.py:7:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/Carbon_Black_Enterprise_Response/Integrations/CarbonBlackResponseV2/CarbonBlackResponseV2.py:7:1: UP035 [*] Import from `collections.abc` instead: `Callable` + Packs/CircleCI/Integrations/CircleCI/CircleCI.py:1:1: UP035 Import from `collections.abc` instead: `Callable` - Packs/CircleCI/Integrations/CircleCI/CircleCI.py:1:1: UP035 [*] Import from `collections.abc` instead: `Callable` ... 210 additional changes omitted for project
Changes by rule (1 rules affected)
code | total | + violation | - violation | + fix | - fix |
---|---|---|---|---|---|
UP035 | 356 | 0 | 0 | 0 | 356 |
3ad4869
to
6d22b9a
Compare
deprecated-import
fixes as unsagedeprecated-import
fixes as unsafe
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM without actually checking each type
@charliermarsh want to review as well?
@tjkuson - What was the methodology for determining whether the imports were the same, or changed? |
I compared object identity with an assertion: from old import foo as old_foo
from new import foo as new_foo
assert old_foo is new_foo |
It may be challenging but... I feel like these could still be considered safe if the usages are exclusively in typing contexts / type annotations. What do you think? |
As in making Ruff determine if an import is being used for typing only? There's already logic that checks if an import only used for typing, right? If so, it shouldn't be too difficult, unless I am missing something… |
@AlexWaygood are you interested in taking over review of this? |
Sure, I'll take a look tomorrow |
I think I'm going to close this. I appreciate the work (thank you as always) and it's a reasonable proposal but ultimately I think it adds more overhead to the maintenance of the rule and to users than is worthwhile. If we see a real issue in practice from marking these as safe, I will of course revisit. |
Summary
Checked each import to see if its replacement is the same as the original. If the objects were different, marked the fix as unsafe.
Closes #7436.
Test Plan
cargo test