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

Mark some deprecated-import fixes as unsafe #8840

Closed
wants to merge 2 commits into from

Conversation

tjkuson
Copy link
Contributor

@tjkuson tjkuson commented Nov 26, 2023

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

@tjkuson tjkuson marked this pull request as ready for review November 26, 2023 13:07
Copy link
Contributor

github-actions bot commented Nov 26, 2023

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+0 -0 violations, +0 -362 fixes in 41 projects)

bokeh/bokeh (+0 -0 violations, +0 -118 fixes)

ruff check --no-cache --exit-zero --no-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/application.py:33:1: UP035 Import from `collections.abc` instead: `Awaitable`
- src/bokeh/application/application.py:33:1: UP035 [*] Import from `collections.abc` instead: `Awaitable`
+ 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`
... 102 additional changes omitted for project

demisto/content (+0 -0 violations, +0 -244 fixes)

+ 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`
... 211 additional changes omitted for project

Changes by rule (1 rules affected)

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

@tjkuson tjkuson changed the title Mark some deprecated-import fixes as unsage Mark some deprecated-import fixes as unsafe Nov 26, 2023
Copy link
Member

@zanieb zanieb left a 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?

@charliermarsh
Copy link
Member

@tjkuson - What was the methodology for determining whether the imports were the same, or changed?

@tjkuson
Copy link
Contributor Author

tjkuson commented Nov 28, 2023

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

@charliermarsh
Copy link
Member

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?

@tjkuson
Copy link
Contributor Author

tjkuson commented Dec 1, 2023

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…

@zanieb
Copy link
Member

zanieb commented Mar 12, 2024

@AlexWaygood are you interested in taking over review of this?

@AlexWaygood
Copy link
Member

@AlexWaygood are you interested in taking over review of this?

Sure, I'll take a look tomorrow

@charliermarsh
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Split UP035 (deprecated-import) for aliases
4 participants