-
Notifications
You must be signed in to change notification settings - Fork 244
Support module-level __getattr__ in stubs for from-imports fixes #1993
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
Support module-level __getattr__ in stubs for from-imports fixes #1993
Conversation
…book#1988 Signed-off-by: Aryan Bagade <[email protected]>
This comment has been minimized.
This comment has been minimized.
|
i see errors in AutoSplit, black, pydantic these occur because their dependency stubs have This is technically correct behavior —> we return whatever Let me know if you'd prefer we only apply this fallback when |
rchen152
left a comment
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.
Thanks! Back to you with a couple comments
Always applying the fallback seems like correct behavior to me, no need to change it! |
…bmodule precedence Signed-off-by: Aryan Bagade <[email protected]>
|
Diff from mypy_primer, showing the effect of this PR on open source code: urllib3 (https://github.com/urllib3/urllib3)
- ERROR test/__init__.py:32:31-58: Could not import `zstd` from `backports` [missing-module-attribute]
- ERROR test/test_response.py:43:31-35: Could not import `zstd` from `backports` [missing-module-attribute]
- ERROR src/urllib3/response.py:244:31-35: Could not import `zstd` from `backports` [missing-module-attribute]
- ERROR src/urllib3/util/request.py:37:31-58: Could not import `zstd` from `backports` [missing-module-attribute]
- ::error file=test/__init__.py,line=32,col=31,endLine=32,endColumn=58,title=Pyrefly missing-module-attribute::Could not import `zstd` from `backports`
- ::error file=test/test_response.py,line=43,col=31,endLine=43,endColumn=35,title=Pyrefly missing-module-attribute::Could not import `zstd` from `backports`
- ::error file=src/urllib3/response.py,line=244,col=31,endLine=244,endColumn=35,title=Pyrefly missing-module-attribute::Could not import `zstd` from `backports`
- ::error file=src/urllib3/util/request.py,line=37,col=31,endLine=37,endColumn=58,title=Pyrefly missing-module-attribute::Could not import `zstd` from `backports`
dd-trace-py (https://github.com/DataDog/dd-trace-py)
- ERROR scripts/iast/print_patched_code.py:18:33-44: Could not import `PythonLexer` from `pygments.lexers` [missing-module-attribute]
- ERROR tests/appsec/iast_packages/packages/pkg_pygments.py:21:33-44: Could not import `PythonLexer` from `pygments.lexers` [missing-module-attribute]
- ERROR tests/appsec/iast_packages/packages/pkg_pygments.py:47:33-44: Could not import `PythonLexer` from `pygments.lexers` [missing-module-attribute]
- ::error file=scripts/iast/print_patched_code.py,line=18,col=33,endLine=18,endColumn=44,title=Pyrefly missing-module-attribute::Could not import `PythonLexer` from `pygments.lexers`
- ::error file=tests/appsec/iast_packages/packages/pkg_pygments.py,line=21,col=33,endLine=21,endColumn=44,title=Pyrefly missing-module-attribute::Could not import `PythonLexer` from `pygments.lexers`
- ::error file=tests/appsec/iast_packages/packages/pkg_pygments.py,line=47,col=33,endLine=47,endColumn=44,title=Pyrefly missing-module-attribute::Could not import `PythonLexer` from `pygments.lexers`
schemathesis (https://github.com/schemathesis/schemathesis)
- ERROR src/schemathesis/specs/openapi/adapter/validators.py:6:52-72: Could not import `OPENAPI_30_VALIDATOR` from `schemathesis.specs.openapi.definitions` [missing-module-attribute]
- ERROR src/schemathesis/specs/openapi/adapter/validators.py:6:74-94: Could not import `OPENAPI_31_VALIDATOR` from `schemathesis.specs.openapi.definitions` [missing-module-attribute]
- ERROR src/schemathesis/specs/openapi/adapter/validators.py:6:96-116: Could not import `SWAGGER_20_VALIDATOR` from `schemathesis.specs.openapi.definitions` [missing-module-attribute]
- ::error file=src/schemathesis/specs/openapi/adapter/validators.py,line=6,col=52,endLine=6,endColumn=72,title=Pyrefly missing-module-attribute::Could not import `OPENAPI_30_VALIDATOR` from `schemathesis.specs.openapi.definitions`
- ::error file=src/schemathesis/specs/openapi/adapter/validators.py,line=6,col=74,endLine=6,endColumn=94,title=Pyrefly missing-module-attribute::Could not import `OPENAPI_31_VALIDATOR` from `schemathesis.specs.openapi.definitions`
- ::error file=src/schemathesis/specs/openapi/adapter/validators.py,line=6,col=96,endLine=6,endColumn=116,title=Pyrefly missing-module-attribute::Could not import `SWAGGER_20_VALIDATOR` from `schemathesis.specs.openapi.definitions`
Expression (https://github.com/cognitedata/Expression)
- ERROR docs/notebooks.ipynb#2:1:34-40: Could not import `cycler` from `matplotlib` [missing-module-attribute]
- ::error file=docs/notebooks.ipynb,line=1,col=34,endLine=1,endColumn=40,title=Pyrefly missing-module-attribute::Could not import `cycler` from `matplotlib`
porcupine (https://github.com/Akuli/porcupine)
- ERROR porcupine/plugins/highlight/pygments_highlighter.py:9:29-42: Could not import `MarkdownLexer` from `pygments.lexers` [missing-module-attribute]
- ERROR porcupine/tabs.py:20:29-38: Could not import `TextLexer` from `pygments.lexers` [missing-module-attribute]
- ::error file=porcupine/plugins/highlight/pygments_highlighter.py,line=9,col=29,endLine=9,endColumn=42,title=Pyrefly missing-module-attribute::Could not import `MarkdownLexer` from `pygments.lexers`
- ::error file=porcupine/tabs.py,line=20,col=29,endLine=20,endColumn=38,title=Pyrefly missing-module-attribute::Could not import `TextLexer` from `pygments.lexers`
pandera (https://github.com/pandera-dev/pandera)
- ERROR pandera/decorators.py:19:22-40: Could not import `validate_arguments` from `pydantic` [missing-module-attribute]
+ ERROR pandera/decorators.py:822:29-47: Expected a callable, got `object` [not-callable]
+ ERROR pandera/decorators.py:833:23-41: Expected a callable, got `object` [not-callable]
- ::error file=pandera/decorators.py,line=19,col=22,endLine=19,endColumn=40,title=Pyrefly missing-module-attribute::Could not import `validate_arguments` from `pydantic`
+ ::error file=pandera/decorators.py,line=822,col=29,endLine=822,endColumn=47,title=Pyrefly not-callable::Expected a callable, got `object`
+ ::error file=pandera/decorators.py,line=833,col=23,endLine=833,endColumn=41,title=Pyrefly not-callable::Expected a callable, got `object`
prefect (https://github.com/PrefectHQ/prefect)
- ERROR src/prefect/__init__.py:6:15-26: Could not import `_build_info` from `prefect` [missing-module-attribute]
- ERROR src/prefect/_internal/_logging.py:22:38-68: Could not import `PREFECT_LOGGING_INTERNAL_LEVEL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/_internal/schemas/validators.py:489:9-46: Could not import `PREFECT_API_TASK_CACHE_KEY_MAX_LENGTH` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/cloud/__init__.py:45:5-20: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/cloud/__init__.py:46:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/cloud/__init__.py:47:5-25: Could not import `PREFECT_CLOUD_UI_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/dev.py:24:5-28: Could not import `PREFECT_SERVER_API_HOST` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/dev.py:25:5-28: Could not import `PREFECT_SERVER_API_PORT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:33:5-43: Could not import `PREFECT_API_SERVICES_LATE_RUNS_ENABLED` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:34:5-43: Could not import `PREFECT_API_SERVICES_SCHEDULER_ENABLED` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:35:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:36:5-17: Could not import `PREFECT_HOME` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:37:5-37: Could not import `PREFECT_SERVER_ANALYTICS_ENABLED` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:38:5-33: Could not import `PREFECT_SERVER_API_BASE_PATH` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:39:5-28: Could not import `PREFECT_SERVER_API_HOST` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:40:5-41: Could not import `PREFECT_SERVER_API_KEEPALIVE_TIMEOUT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:41:5-28: Could not import `PREFECT_SERVER_API_PORT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:42:5-33: Could not import `PREFECT_SERVER_LOGGING_LEVEL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/server.py:43:5-23: Could not import `PREFECT_UI_ENABLED` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/worker.py:21:5-37: Could not import `PREFECT_WORKER_HEARTBEAT_SECONDS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/cli/worker.py:22:5-36: Could not import `PREFECT_WORKER_PREFETCH_SECONDS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/base.py:26:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/base.py:27:5-31: Could not import `PREFECT_CLIENT_MAX_RETRIES` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/base.py:28:5-37: Could not import `PREFECT_CLIENT_RETRY_EXTRA_CODES` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/base.py:29:5-39: Could not import `PREFECT_CLIENT_RETRY_JITTER_FACTOR` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/base.py:30:5-26: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/base.py:31:5-40: Could not import `PREFECT_SERVER_ALLOW_EPHEMERAL_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/cloud.py:21:5-20: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/cloud.py:22:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/cloud.py:23:5-26: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/cloud.py:24:5-35: Could not import `PREFECT_TESTING_UNIT_TEST_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:123:5-28: Could not import `PREFECT_API_AUTH_STRING` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:124:5-40: Could not import `PREFECT_API_DATABASE_CONNECTION_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:125:5-29: Could not import `PREFECT_API_ENABLE_HTTP2` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:126:5-20: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:127:5-32: Could not import `PREFECT_API_REQUEST_TIMEOUT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:128:5-30: Could not import `PREFECT_API_SSL_CERT_FILE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:129:5-41: Could not import `PREFECT_API_TLS_INSECURE_SKIP_VERIFY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:130:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:131:5-40: Could not import `PREFECT_CLIENT_CSRF_SUPPORT_ENABLED` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:132:5-26: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:133:5-40: Could not import `PREFECT_SERVER_ALLOW_EPHEMERAL_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/orchestration/__init__.py:134:5-35: Could not import `PREFECT_TESTING_UNIT_TEST_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/schemas/actions.py:39:30-76: Could not import `PREFECT_DEPLOYMENT_SCHEDULE_MAX_SCHEDULED_RUNS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/schemas/objects.py:58:30-51: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/client/schemas/objects.py:58:53-73: Could not import `PREFECT_CLOUD_UI_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/deployments/runner.py:99:5-35: Could not import `PREFECT_DEFAULT_WORK_POOL_NAME` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/deployments/runner.py:100:5-19: Could not import `PREFECT_UI_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/deployments/steps/core.py:32:30-48: Could not import `PREFECT_DEBUG_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/docker/docker_image.py:5:5-43: Could not import `PREFECT_DEFAULT_DOCKER_BUILD_NAMESPACE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/clients.py:36:5-28: Could not import `PREFECT_API_AUTH_STRING` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/clients.py:37:5-20: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/clients.py:38:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/clients.py:39:5-26: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/clients.py:40:5-23: Could not import `PREFECT_DEBUG_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/clients.py:41:5-40: Could not import `PREFECT_SERVER_ALLOW_EPHEMERAL_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/schemas/events.py:32:5-47: Could not import `PREFECT_EVENTS_MAXIMUM_LABELS_PER_RESOURCE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/schemas/events.py:104:34-74: Could not import `PREFECT_EVENTS_MAXIMUM_RELATED_RESOURCES` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/worker.py:10:5-20: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/worker.py:11:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/events/worker.py:12:5-26: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/flow_engine.py:89:30-48: Could not import `PREFECT_DEBUG_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/flows.py:72:5-35: Could not import `PREFECT_DEFAULT_WORK_POOL_NAME` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/flows.py:73:5-33: Could not import `PREFECT_FLOW_DEFAULT_RETRIES` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/flows.py:74:5-45: Could not import `PREFECT_FLOW_DEFAULT_RETRY_DELAY_SECONDS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/flows.py:75:5-35: Could not import `PREFECT_TESTING_UNIT_TEST_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/flows.py:76:5-19: Could not import `PREFECT_UI_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/infrastructure/provisioners/cloud_run.py:24:5-23: Could not import `PREFECT_DEBUG_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/infrastructure/provisioners/cloud_run.py:25:5-43: Could not import `PREFECT_DEFAULT_DOCKER_BUILD_NAMESPACE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/infrastructure/provisioners/container_instance.py:38:5-43: Could not import `PREFECT_DEFAULT_DOCKER_BUILD_NAMESPACE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/infrastructure/provisioners/ecs.py:29:5-43: Could not import `PREFECT_DEFAULT_DOCKER_BUILD_NAMESPACE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/clients.py:34:5-28: Could not import `PREFECT_API_AUTH_STRING` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/clients.py:35:5-20: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/clients.py:36:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/clients.py:37:5-26: Could not import `PREFECT_CLOUD_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/clients.py:38:5-40: Could not import `PREFECT_SERVER_ALLOW_EPHEMERAL_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/configuration.py:16:5-34: Could not import `PREFECT_LOGGING_EXTRA_LOGGERS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/configuration.py:17:5-34: Could not import `PREFECT_LOGGING_SETTINGS_PATH` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/filters.py:36:38-53: Could not import `PREFECT_API_KEY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:29:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:30:5-27: Could not import `PREFECT_LOGGING_COLORS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:31:5-35: Could not import `PREFECT_LOGGING_INTERNAL_LEVEL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:32:5-27: Could not import `PREFECT_LOGGING_MARKUP` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:33:5-42: Could not import `PREFECT_LOGGING_TO_API_BATCH_INTERVAL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:34:5-38: Could not import `PREFECT_LOGGING_TO_API_BATCH_SIZE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:35:5-40: Could not import `PREFECT_LOGGING_TO_API_MAX_LOG_SIZE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/logging/handlers.py:36:5-45: Could not import `PREFECT_LOGGING_TO_API_WHEN_MISSING_FLOW` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/runner.py:104:5-20: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/runner.py:105:5-33: Could not import `PREFECT_RUNNER_SERVER_ENABLE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/server.py:13:5-34: Could not import `PREFECT_RUNNER_POLL_FREQUENCY` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/server.py:14:5-31: Could not import `PREFECT_RUNNER_SERVER_HOST` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/server.py:15:5-36: Could not import `PREFECT_RUNNER_SERVER_LOG_LEVEL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/server.py:16:5-49: Could not import `PREFECT_RUNNER_SERVER_MISSED_POLLS_TOLERANCE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runner/server.py:17:5-31: Could not import `PREFECT_RUNNER_SERVER_PORT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runtime/flow_run.py:33:30-45: Could not import `PREFECT_API_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/runtime/flow_run.py:33:47-61: Could not import `PREFECT_UI_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/concurrency_limits.py:31:30-80: Could not import `PREFECT_TASK_RUN_TAG_CONCURRENCY_SLOT_WAIT_SECONDS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/csrf_token.py:11:30-68: Could not import `PREFECT_SERVER_CSRF_PROTECTION_ENABLED` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/dependencies.py:20:30-55: Could not import `PREFECT_API_DEFAULT_LIMIT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/events.py:34:5-46: Could not import `PREFECT_EVENTS_MAXIMUM_WEBSOCKET_BACKFILL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/events.py:35:5-48: Could not import `PREFECT_EVENTS_WEBSOCKET_BACKFILL_PAGE_SIZE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:59:5-40: Could not import `PREFECT_API_DATABASE_CONNECTION_URL` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:60:5-37: Could not import `PREFECT_API_LOG_RETRYABLE_ERRORS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:61:5-23: Could not import `PREFECT_DEBUG_MODE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:62:5-28: Could not import `PREFECT_MEMO_STORE_PATH` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:63:5-44: Could not import `PREFECT_MEMOIZE_BLOCK_AUTO_REGISTRATION` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:64:5-33: Could not import `PREFECT_SERVER_API_BASE_PATH` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:65:5-53: Could not import `PREFECT_SERVER_EPHEMERAL_STARTUP_TIMEOUT_SECONDS` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/api/server.py:66:5-26: Could not import `PREFECT_UI_SERVE_BASE` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/database/configurations.py:37:5-44: Could not import `PREFECT_API_DATABASE_CONNECTION_TIMEOUT` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/database/configurations.py:38:5-30: Could not import `PREFECT_API_DATABASE_ECHO` from `prefect.settings` [missing-module-attribute]
- ERROR src/prefect/server/database/configurations.py:39:5-33: Could not import `PREFECT_API_DATABASE_TIMEOUT` from `prefect.settings` [missing-module-attribute]
... (truncated 206 lines) ...
strawberry (https://github.com/strawberry-graphql/strawberry)
- ERROR strawberry/exceptions/syntax.py:5:29-40: Could not import `PythonLexer` from `pygments.lexers` [missing-module-attribute]
- ::error file=strawberry/exceptions/syntax.py,line=5,col=29,endLine=5,endColumn=40,title=Pyrefly missing-module-attribute::Could not import `PythonLexer` from `pygments.lexers`
pandas (https://github.com/pandas-dev/pandas)
- ERROR pandas/io/pytables.py:141:39-44: Could not import `Block` from `pandas.core.internals` [missing-module-attribute]
+ ERROR pandas/io/pytables.py:4298:22-27: Expected a type form, got instance of `((blocks: list[Block], axes: list[Index], consolidate: bool = True, verify_integrity: bool = True) -> BlockManager) | type[Block] | type[ExtensionBlock] | type[_DatetimeTZBlock]` [not-a-type]
+ ERROR pandas/io/pytables.py:4326:30-35: Expected a type form, got instance of `((blocks: list[Block], axes: list[Index], consolidate: bool = True, verify_integrity: bool = True) -> BlockManager) | type[Block] | type[ExtensionBlock] | type[_DatetimeTZBlock]` [not-a-type]
- ERROR pandas/tests/util/test_hashing.py:16:5-15: Could not import `hash_array` from `pandas.util` [missing-module-attribute]
- ERROR pandas/tests/util/test_hashing.py:17:5-23: Could not import `hash_pandas_object` from `pandas.util` [missing-module-attribute]
+ ERROR pandas/tests/util/test_hashing.py:45:33-61: Argument `Index` is not assignable to parameter `vals` with type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas.core.util.hashing.hash_array` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:45:33-61: Argument `Index` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:45:33-61: Argument `Index` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:63:26-53: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `obj` with type `DataFrame | Index | Series` in function `pandas.core.util.hashing.hash_pandas_object` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:63:26-53: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:63:26-53: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:64:26-62: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `obj` with type `DataFrame | Index | Series` in function `pandas.core.util.hashing.hash_pandas_object` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:64:26-62: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:64:26-62: Argument `ndarray[tuple[Any, ...], dtype[Any]]` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:82:20-23: Argument `DatetimeIndex` is not assignable to parameter `vals` with type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas.core.util.hashing.hash_array` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:82:20-23: Argument `DatetimeIndex` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:82:20-23: Argument `DatetimeIndex` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:89:16-73: Object of class `Appender` has no attribute `values`
+ Object of class `Substitution` has no attribute `values`
+ Object of class `ndarray` has no attribute `values`
+ Object of class `property` has no attribute `values` [missing-attribute]
+ ERROR pandas/tests/util/test_hashing.py:89:35-65: Argument `MultiIndex` is not assignable to parameter `vals` with type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas.core.util.hashing.hash_array` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:89:35-65: Argument `MultiIndex` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:89:35-65: Argument `MultiIndex` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:109:33-35: Argument `MultiIndex` is not assignable to parameter `vals` with type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas.core.util.hashing.hash_array` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:109:33-35: Argument `MultiIndex` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:109:33-35: Argument `MultiIndex` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:110:12-28: Object of class `Appender` has no attribute `is_unique`
+ Object of class `Substitution` has no attribute `is_unique`
+ Object of class `ndarray` has no attribute `is_unique`
+ Object of class `property` has no attribute `is_unique` [missing-attribute]
+ ERROR pandas/tests/util/test_hashing.py:156:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:156:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:156:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:157:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:157:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:157:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:189:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:189:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:189:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:190:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:190:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:190:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:208:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:208:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:208:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:209:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:209:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:209:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:214:36-41: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:214:36-41: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:214:36-41: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:215:36-41: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:215:36-41: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:215:36-41: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:220:36-41: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:220:36-41: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:220:36-41: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:221:36-41: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:221:36-41: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:221:36-41: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:231:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:231:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:231:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:232:33-38: Unexpected keyword argument `index` in function `pandas.core.util.hashing.hash_array` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:232:33-38: Unexpected keyword argument `index` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:232:33-38: Unexpected keyword argument `index` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:255:29-31: Argument `Series` is not assignable to parameter `vals` with type `ExtensionArray | ndarray[tuple[Any, ...], dtype[Any]]` in function `pandas.core.util.hashing.hash_array` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:255:29-31: Argument `Series` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:255:29-31: Argument `Series` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:255:33-43: Unexpected keyword argument `categorize` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:255:33-43: Unexpected keyword argument `categorize` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:256:33-43: Unexpected keyword argument `categorize` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:256:33-43: Unexpected keyword argument `categorize` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:257:33-43: Unexpected keyword argument `categorize` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:257:33-43: Unexpected keyword argument `categorize` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:266:27-30: Argument `Categorical` is not assignable to parameter `obj` with type `DataFrame | Index | Series` in function `pandas.core.util.hashing.hash_pandas_object` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:266:27-30: Argument `Categorical` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:266:27-30: Argument `Categorical` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:266:32-42: Unexpected keyword argument `categorize` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:266:32-42: Unexpected keyword argument `categorize` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:270:25-29: Argument `Categorical` is not assignable to parameter `obj` with type `DataFrame | Index | Series` in function `pandas.core.util.hashing.hash_pandas_object` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:270:25-29: Argument `Categorical` is not assignable to parameter `addendum` with type `str | None` in function `pandas.util._decorators.Appender.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:270:25-29: Argument `Categorical` is not assignable to parameter `fget` with type `((Any) -> Any) | None` in function `property.__init__` [bad-argument-type]
+ ERROR pandas/tests/util/test_hashing.py:270:31-41: Unexpected keyword argument `categorize` in function `pandas.util._decorators.Appender.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:270:31-41: Unexpected keyword argument `categorize` in function `property.__init__` [unexpected-keyword]
+ ERROR pandas/tests/util/test_hashing.py:272:12-21: Cannot index into `Appender` [bad-index]
+ ERROR pandas/tests/util/test_hashing.py:272:12-21: Cannot index into `Substitution` [bad-index]
+ ERROR pandas/tests/util/test_hashing.py:272:12-21: Cannot index into `property` [bad-index]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `Series` and `Appender` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `Series` and `Substitution` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `Series` and `property` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `ndarray[tuple[Any, ...], dtype[Any]]` and `Appender` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `ndarray[tuple[Any, ...], dtype[Any]]` and `Substitution` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `ndarray[tuple[Any, ...], dtype[Any]]` and `property` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `Unknown` and `Appender` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `Unknown` and `Substitution` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:272:12-33: `in` is not supported between `Unknown` and `property` [not-iterable]
+ ERROR pandas/tests/util/test_hashing.py:273:12-21: Cannot index into `Appender` [bad-index]
+ ERROR pandas/tests/util/test_hashing.py:273:12-21: Cannot index into `Substitution` [bad-index]
+ ERROR pandas/tests/util/test_hashing.py:273:12-21: Cannot index into `property` [bad-index]
... (truncated 329 lines) ...
vision (https://github.com/pytorch/vision)
- ERROR references/detection/coco_utils.py:213:42-72: Could not import `wrap_dataset_for_transforms_v2` from `torchvision.datasets` [missing-module-attribute]
- ERROR references/segmentation/coco_utils.py:102:42-72: Could not import `wrap_dataset_for_transforms_v2` from `torchvision.datasets` [missing-module-attribute]
- ERROR test/builtin_dataset_mocks.py:1529:36-46: Could not import `fromarrays` from `numpy.core.records` [missing-module-attribute]
- ERROR test/datasets_utils.py:33:34-64: Could not import `wrap_dataset_for_transforms_v2` from `torchvision.datasets` [missing-module-attribute]
- ERROR test/test_datasets.py:2754:40-50: Could not import `fromarrays` from `numpy.core.records` [missing-module-attribute]
- ::error file=references/detection/coco_utils.py,line=213,col=42,endLine=213,endColumn=72,title=Pyrefly missing-module-attribute::Could not import `wrap_dataset_for_transforms_v2` from `torchvision.datasets`
- ::error file=references/segmentation/coco_utils.py,line=102,col=42,endLine=102,endColumn=72,title=Pyrefly missing-module-attribute::Could not import `wrap_dataset_for_transforms_v2` from `torchvision.datasets`
- ::error file=test/builtin_dataset_mocks.py,line=1529,col=36,endLine=1529,endColumn=46,title=Pyrefly missing-module-attribute::Could not import `fromarrays` from `numpy.core.records`
- ::error file=test/datasets_utils.py,line=33,col=34,endLine=33,endColumn=64,title=Pyrefly missing-module-attribute::Could not import `wrap_dataset_for_transforms_v2` from `torchvision.datasets`
- ::error file=test/test_datasets.py,line=2754,col=40,endLine=2754,endColumn=50,title=Pyrefly missing-module-attribute::Could not import `fromarrays` from `numpy.core.records`
aiohttp-devtools (https://github.com/aio-libs/aiohttp-devtools)
- ERROR aiohttp_devtools/logs.py:16:29-50: Could not import `Python3TracebackLexer` from `pygments.lexers` [missing-module-attribute]
- ::error file=aiohttp_devtools/logs.py,line=16,col=29,endLine=16,endColumn=50,title=Pyrefly missing-module-attribute::Could not import `Python3TracebackLexer` from `pygments.lexers`
setuptools (https://github.com/pypa/setuptools)
- ERROR pkg_resources/__init__.py:648:34-46: Could not import `__requires__` from `__main__` [missing-module-attribute]
- ::error file=pkg_resources/__init__.py,line=648,col=34,endLine=648,endColumn=46,title=Pyrefly missing-module-attribute::Could not import `__requires__` from `__main__`
scrapy (https://github.com/scrapy/scrapy)
- ERROR scrapy/utils/display.py:41:33-44: Could not import `PythonLexer` from `pygments.lexers` [missing-module-attribute]
- ERROR tests/test_scrapy__getattr__.py:7:13-39: Could not import `CONCURRENT_REQUESTS_PER_IP` from `scrapy.settings.default_settings` [missing-module-attribute]
+ WARN tests/test_scrapy__getattr__.py:10:50-54: Identity comparison `0 is not None` is always True [unnecessary-comparison]
- ::error file=scrapy/utils/display.py,line=41,col=33,endLine=41,endColumn=44,title=Pyrefly missing-module-attribute::Could not import `PythonLexer` from `pygments.lexers`
- ::error file=tests/test_scrapy__getattr__.py,line=7,col=13,endLine=7,endColumn=39,title=Pyrefly missing-module-attribute::Could not import `CONCURRENT_REQUESTS_PER_IP` from `scrapy.settings.default_settings`
+ ::warning file=tests/test_scrapy__getattr__.py,line=10,col=50,endLine=10,endColumn=54,title=Pyrefly unnecessary-comparison::Identity comparison `0 is not None` is always True
altair (https://github.com/vega/altair)
- ERROR tests/utils/test_deprecation.py:61:28-34: Could not import `themes` from `altair` [missing-module-attribute]
- ::error file=tests/utils/test_deprecation.py,line=61,col=28,endLine=61,endColumn=34,title=Pyrefly missing-module-attribute::Could not import `themes` from `altair`
|
rchen152
left a comment
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.
Looks good to me, thank you!
grievejia
left a comment
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.
Review automatically exported from Phabricator review in Meta.
Summary
When a stub file has a top-level
__getattr__function, it indicates the stub is incomplete and any name can be imported from that module. This is documented in the typing spec for incomplete stubsPreviously,
from module import namewould fail with "Could not importnamefrommodule" even when__getattr__was defined. Now, the imported name correctly gets the return type of__getattr__.Example:
Fixes #1988
Test Plan
Test Plan