Skip to content

Include decorators in Function and Class definition ranges#4467

Merged
MichaReiser merged 2 commits intomainfrom
include-decorator-range-in-function-and-class-def
May 22, 2023
Merged

Include decorators in Function and Class definition ranges#4467
MichaReiser merged 2 commits intomainfrom
include-decorator-range-in-function-and-class-def

Conversation

@MichaReiser
Copy link
Member

@MichaReiser MichaReiser commented May 17, 2023

@MichaReiser
Copy link
Member Author

Current dependencies on/for this PR:

This comment was auto-generated by Graphite.

@github-actions
Copy link
Contributor

github-actions bot commented May 17, 2023

PR Check Results

Ecosystem

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

airflow (+31, -29)

- airflow/cli/commands/celery_command.py:116:13: A003 Class attribute `filter` is shadowing a Python builtin
+ airflow/cli/commands/celery_command.py:116:17: A003 Class attribute `filter` is shadowing a Python builtin
- airflow/configuration.py:1681:1: A001 Variable `set` is shadowing a Python builtin
+ airflow/configuration.py:1681:5: A001 Variable `set` is shadowing a Python builtin
+ airflow/example_dags/example_sensor_decorator.py:21:1: I001 [*] Import block is un-sorted or un-formatted
+ airflow/example_dags/tutorial_taskflow_api.py:18:1: I001 [*] Import block is un-sorted or un-formatted
- airflow/models/errors.py:26:1: A001 Variable `ImportError` is shadowing a Python builtin
+ airflow/models/errors.py:26:7: A001 Variable `ImportError` is shadowing a Python builtin
- airflow/models/variable.py:154:5: A003 Class attribute `set` is shadowing a Python builtin
+ airflow/models/variable.py:154:9: A003 Class attribute `set` is shadowing a Python builtin
- airflow/models/xcom.py:137:5: A003 Class attribute `set` is shadowing a Python builtin
+ airflow/models/xcom.py:137:9: A003 Class attribute `set` is shadowing a Python builtin
- airflow/models/xcom.py:166:5: A003 Class attribute `set` is shadowing a Python builtin
+ airflow/models/xcom.py:166:9: A003 Class attribute `set` is shadowing a Python builtin
- airflow/models/xcom.py:182:5: A003 Class attribute `set` is shadowing a Python builtin
+ airflow/models/xcom.py:182:9: A003 Class attribute `set` is shadowing a Python builtin
- airflow/models/xcom_arg.py:178:5: A003 Class attribute `map` is shadowing a Python builtin
+ airflow/models/xcom_arg.py:178:9: A003 Class attribute `map` is shadowing a Python builtin
- airflow/models/xcom_arg.py:181:5: A003 Class attribute `zip` is shadowing a Python builtin
+ airflow/models/xcom_arg.py:181:9: A003 Class attribute `zip` is shadowing a Python builtin
- airflow/models/xcom_arg.py:302:5: A003 Class attribute `map` is shadowing a Python builtin
+ airflow/models/xcom_arg.py:302:9: A003 Class attribute `map` is shadowing a Python builtin
- airflow/models/xcom_arg.py:307:5: A003 Class attribute `zip` is shadowing a Python builtin
+ airflow/models/xcom_arg.py:307:9: A003 Class attribute `zip` is shadowing a Python builtin
- airflow/models/xcom_arg.py:450:5: A003 Class attribute `map` is shadowing a Python builtin
+ airflow/models/xcom_arg.py:450:9: A003 Class attribute `map` is shadowing a Python builtin
- airflow/providers/google/cloud/hooks/bigquery.py:2793:5: A003 Class attribute `next` is shadowing a Python builtin
+ airflow/providers/google/cloud/hooks/bigquery.py:2793:9: A003 Class attribute `next` is shadowing a Python builtin
- airflow/providers/google/cloud/hooks/gcs.py:699:5: A003 Class attribute `list` is shadowing a Python builtin
+ airflow/providers/google/cloud/hooks/gcs.py:699:9: A003 Class attribute `list` is shadowing a Python builtin
- airflow/providers/microsoft/azure/hooks/data_lake.py:216:5: A003 Class attribute `list` is shadowing a Python builtin
+ airflow/providers/microsoft/azure/hooks/data_lake.py:216:9: A003 Class attribute `list` is shadowing a Python builtin
- airflow/utils/file.py:46:5: A003 Class attribute `compile` is shadowing a Python builtin
+ airflow/utils/file.py:46:9: A003 Class attribute `compile` is shadowing a Python builtin
- airflow/utils/file.py:64:5: A003 Class attribute `compile` is shadowing a Python builtin
+ airflow/utils/file.py:64:9: A003 Class attribute `compile` is shadowing a Python builtin
- airflow/utils/file.py:92:5: A003 Class attribute `compile` is shadowing a Python builtin
+ airflow/utils/file.py:92:9: A003 Class attribute `compile` is shadowing a Python builtin
- airflow/utils/log/colored_log.py:95:5: A003 Class attribute `format` is shadowing a Python builtin
+ airflow/utils/log/colored_log.py:95:9: A003 Class attribute `format` is shadowing a Python builtin
- airflow/utils/log/json_formatter.py:42:5: A003 Class attribute `format` is shadowing a Python builtin
+ airflow/utils/log/json_formatter.py:42:9: A003 Class attribute `format` is shadowing a Python builtin
- airflow/utils/log/secrets_masker.py:189:5: A003 Class attribute `filter` is shadowing a Python builtin
+ airflow/utils/log/secrets_masker.py:189:9: A003 Class attribute `filter` is shadowing a Python builtin
- airflow/utils/log/trigger_handler.py:41:5: A003 Class attribute `filter` is shadowing a Python builtin
+ airflow/utils/log/trigger_handler.py:41:9: A003 Class attribute `filter` is shadowing a Python builtin
- airflow/utils/log/trigger_handler.py:64:5: A003 Class attribute `filter` is shadowing a Python builtin
+ airflow/utils/log/trigger_handler.py:64:9: A003 Class attribute `filter` is shadowing a Python builtin
- airflow/www/views.py:4721:5: A003 Class attribute `list` is shadowing a Python builtin
+ airflow/www/views.py:4721:9: A003 Class attribute `list` is shadowing a Python builtin
- airflow/www/views.py:4773:5: A003 Class attribute `list` is shadowing a Python builtin
+ airflow/www/views.py:4773:9: A003 Class attribute `list` is shadowing a Python builtin
- airflow/www/views.py:5776:5: A003 Class attribute `list` is shadowing a Python builtin
+ airflow/www/views.py:5776:9: A003 Class attribute `list` is shadowing a Python builtin
- dev/breeze/src/airflow_breeze/commands/developer_commands.py:581:1: A001 Variable `exec` is shadowing a Python builtin
+ dev/breeze/src/airflow_breeze/commands/developer_commands.py:581:5: A001 Variable `exec` is shadowing a Python builtin
- tests/providers/openlineage/extractors/test_python_extractor.py:52:1: A001 Variable `callable` is shadowing a Python builtin
+ tests/providers/openlineage/extractors/test_python_extractor.py:52:5: A001 Variable `callable` is shadowing a Python builtin
+ tests/providers/openlineage/plugins/test_utils.py:121:11: A001 Variable `NotImplemented` is shadowing a Python builtin
- tests/providers/openlineage/plugins/test_utils.py:121:5: A001 Variable `NotImplemented` is shadowing a Python builtin

bokeh (+17, -17)

- src/bokeh/__init__.py:62:1: A001 Variable `license` is shadowing a Python builtin
+ src/bokeh/__init__.py:62:5: A001 Variable `license` is shadowing a Python builtin
- src/bokeh/application/application.py:318:5: A003 Class attribute `id` is shadowing a Python builtin
+ src/bokeh/application/application.py:318:9: A003 Class attribute `id` is shadowing a Python builtin
- src/bokeh/client/session.py:365:5: A003 Class attribute `id` is shadowing a Python builtin
+ src/bokeh/client/session.py:365:9: A003 Class attribute `id` is shadowing a Python builtin
- src/bokeh/core/property/bases.py:130:5: A003 Class attribute `help` is shadowing a Python builtin
+ src/bokeh/core/property/bases.py:130:9: A003 Class attribute `help` is shadowing a Python builtin
- src/bokeh/core/validation/issue.py:49:1: A001 Variable `Warning` is shadowing a Python builtin
+ src/bokeh/core/validation/issue.py:49:7: A001 Variable `Warning` is shadowing a Python builtin
- src/bokeh/core/validation/issue.py:66:5: A003 Class attribute `all` is shadowing a Python builtin
+ src/bokeh/core/validation/issue.py:66:9: A003 Class attribute `all` is shadowing a Python builtin
- src/bokeh/core/validation/issue.py:87:5: A003 Class attribute `all` is shadowing a Python builtin
+ src/bokeh/core/validation/issue.py:87:9: A003 Class attribute `all` is shadowing a Python builtin
- src/bokeh/model/model.py:128:5: A003 Class attribute `id` is shadowing a Python builtin
+ src/bokeh/model/model.py:128:9: A003 Class attribute `id` is shadowing a Python builtin
- src/bokeh/plotting/glyph_api.py:413:5: A003 Class attribute `hex` is shadowing a Python builtin
+ src/bokeh/plotting/glyph_api.py:413:9: A003 Class attribute `hex` is shadowing a Python builtin
- src/bokeh/server/callbacks.py:74:5: A003 Class attribute `id` is shadowing a Python builtin
+ src/bokeh/server/callbacks.py:74:9: A003 Class attribute `id` is shadowing a Python builtin
- src/bokeh/server/session.py:159:5: A003 Class attribute `id` is shadowing a Python builtin
+ src/bokeh/server/session.py:159:9: A003 Class attribute `id` is shadowing a Python builtin
- src/bokeh/server/views/ws.py:125:5: A003 Class attribute `open` is shadowing a Python builtin
+ src/bokeh/server/views/ws.py:125:9: A003 Class attribute `open` is shadowing a Python builtin
- src/bokeh/settings.py:484:5: A003 Class attribute `help` is shadowing a Python builtin
+ src/bokeh/settings.py:484:9: A003 Class attribute `help` is shadowing a Python builtin
- src/bokeh/util/browser.py:54:5: A003 Class attribute `open` is shadowing a Python builtin
+ src/bokeh/util/browser.py:54:9: A003 Class attribute `open` is shadowing a Python builtin
- src/bokeh/util/browser.py:61:5: A003 Class attribute `open` is shadowing a Python builtin
+ src/bokeh/util/browser.py:61:9: A003 Class attribute `open` is shadowing a Python builtin
- src/typings/selenium/webdriver/remote/webdriver.pyi:29:5: A003 Class attribute `quit` is shadowing a Python builtin
+ src/typings/selenium/webdriver/remote/webdriver.pyi:29:9: A003 Class attribute `quit` is shadowing a Python builtin
- tests/unit/bokeh/util/test_browser.py:38:5: A003 Class attribute `open` is shadowing a Python builtin
+ tests/unit/bokeh/util/test_browser.py:38:9: A003 Class attribute `open` is shadowing a Python builtin

zulip (+7, -7)

- zerver/lib/bot_lib.py:152:5: A003 Class attribute `quit` is shadowing a Python builtin
+ zerver/lib/bot_lib.py:152:9: A003 Class attribute `quit` is shadowing a Python builtin
- zerver/lib/logging_util.py:110:5: A003 Class attribute `filter` is shadowing a Python builtin
+ zerver/lib/logging_util.py:110:9: A003 Class attribute `filter` is shadowing a Python builtin
- zerver/lib/logging_util.py:115:5: A003 Class attribute `filter` is shadowing a Python builtin
+ zerver/lib/logging_util.py:115:9: A003 Class attribute `filter` is shadowing a Python builtin
- zerver/lib/logging_util.py:120:5: A003 Class attribute `filter` is shadowing a Python builtin
+ zerver/lib/logging_util.py:120:9: A003 Class attribute `filter` is shadowing a Python builtin
- zerver/lib/logging_util.py:200:5: A003 Class attribute `format` is shadowing a Python builtin
+ zerver/lib/logging_util.py:200:9: A003 Class attribute `format` is shadowing a Python builtin
- zerver/lib/logging_util.py:224:5: A003 Class attribute `format` is shadowing a Python builtin
+ zerver/lib/logging_util.py:224:9: A003 Class attribute `format` is shadowing a Python builtin
- zerver/lib/logging_util.py:65:5: A003 Class attribute `filter` is shadowing a Python builtin
+ zerver/lib/logging_util.py:65:9: A003 Class attribute `filter` is shadowing a Python builtin

Rules changed: 3
Rule Changes Additions Removals
A003 92 46 46
A001 14 7 7
I001 2 2 0

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.05     15.7±0.03ms     2.6 MB/sec    1.00     15.0±0.15ms     2.7 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.03      3.8±0.00ms     4.4 MB/sec    1.00      3.7±0.01ms     4.6 MB/sec
linter/all-rules/numpy/globals.py          1.02    377.0±1.48µs     7.8 MB/sec    1.00    369.7±1.34µs     8.0 MB/sec
linter/all-rules/pydantic/types.py         1.05      6.5±0.01ms     3.9 MB/sec    1.00      6.2±0.01ms     4.1 MB/sec
linter/default-rules/large/dataset.py      1.12      8.2±0.01ms     5.0 MB/sec    1.00      7.3±0.01ms     5.5 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.08   1665.4±2.45µs    10.0 MB/sec    1.00   1540.4±5.81µs    10.8 MB/sec
linter/default-rules/numpy/globals.py      1.06    174.9±0.42µs    16.9 MB/sec    1.00    164.3±0.48µs    18.0 MB/sec
linter/default-rules/pydantic/types.py     1.09      3.6±0.01ms     7.1 MB/sec    1.00      3.3±0.01ms     7.7 MB/sec
parser/large/dataset.py                    1.00      5.7±0.00ms     7.1 MB/sec    1.03      5.9±0.01ms     6.9 MB/sec
parser/numpy/ctypeslib.py                  1.00   1117.7±0.96µs    14.9 MB/sec    1.02   1143.5±0.81µs    14.6 MB/sec
parser/numpy/globals.py                    1.00    113.4±0.86µs    26.0 MB/sec    1.04    118.1±0.42µs    25.0 MB/sec
parser/pydantic/types.py                   1.00      2.4±0.00ms    10.5 MB/sec    1.03      2.5±0.00ms    10.2 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.02     15.2±0.05ms     2.7 MB/sec    1.00     14.9±0.08ms     2.7 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.01      3.6±0.01ms     4.7 MB/sec    1.00      3.5±0.02ms     4.7 MB/sec
linter/all-rules/numpy/globals.py          1.00    385.4±1.26µs     7.7 MB/sec    1.01   388.4±10.74µs     7.6 MB/sec
linter/all-rules/pydantic/types.py         1.01      6.2±0.02ms     4.1 MB/sec    1.00      6.1±0.03ms     4.2 MB/sec
linter/default-rules/large/dataset.py      1.06      7.9±0.07ms     5.2 MB/sec    1.00      7.4±0.03ms     5.5 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.04   1552.4±9.66µs    10.7 MB/sec    1.00   1486.8±6.52µs    11.2 MB/sec
linter/default-rules/numpy/globals.py      1.03    168.5±1.20µs    17.5 MB/sec    1.00    164.0±1.21µs    18.0 MB/sec
linter/default-rules/pydantic/types.py     1.05      3.4±0.02ms     7.5 MB/sec    1.00      3.2±0.03ms     7.9 MB/sec
parser/large/dataset.py                    1.00      6.1±0.01ms     6.6 MB/sec    1.00      6.1±0.03ms     6.6 MB/sec
parser/numpy/ctypeslib.py                  1.00   1138.0±2.80µs    14.6 MB/sec    1.00   1135.5±4.32µs    14.7 MB/sec
parser/numpy/globals.py                    1.00    116.4±0.36µs    25.4 MB/sec    1.01    117.6±0.69µs    25.1 MB/sec
parser/pydantic/types.py                   1.00      2.6±0.01ms    10.0 MB/sec    1.00      2.6±0.03ms     9.9 MB/sec

@@ -1107,21 +1107,40 @@ pub fn match_parens(start: TextSize, locator: &Locator) -> Option<TextRange> {
/// Specifically, this method returns the range of a function or class name,
/// rather than that of the entire function or class body.
pub fn identifier_range(stmt: &Stmt, locator: &Locator) -> TextRange {
Copy link
Member

Choose a reason for hiding this comment

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

Thanks, this is what I was going to point out :)

@MichaReiser MichaReiser force-pushed the include-decorator-range-in-function-and-class-def branch from c7fd2b5 to a9247fd Compare May 22, 2023 11:51
@MichaReiser MichaReiser marked this pull request as ready for review May 22, 2023 11:51
@MichaReiser MichaReiser added the internal An internal refactor or improvement label May 22, 2023
@MichaReiser
Copy link
Member Author

MichaReiser commented May 22, 2023

I need to look into the ecosystem changes. They look suspicious

@MichaReiser MichaReiser force-pushed the include-decorator-range-in-function-and-class-def branch from a9247fd to 9a1fb0c Compare May 22, 2023 13:17
@MichaReiser MichaReiser force-pushed the include-decorator-range-in-function-and-class-def branch 2 times, most recently from ba09a05 to f81b0a7 Compare May 22, 2023 14:44
@MichaReiser MichaReiser force-pushed the include-decorator-range-in-function-and-class-def branch from f81b0a7 to fc7502b Compare May 22, 2023 15:02
@MichaReiser MichaReiser merged commit daadd24 into main May 22, 2023
@MichaReiser MichaReiser deleted the include-decorator-range-in-function-and-class-def branch May 22, 2023 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal An internal refactor or improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants