Skip to content

[ty] Improve resolution of absolute imports in tests#21817

Merged
BurntSushi merged 7 commits intomainfrom
gankra/notest
Dec 12, 2025
Merged

[ty] Improve resolution of absolute imports in tests#21817
BurntSushi merged 7 commits intomainfrom
gankra/notest

Conversation

@Gankra
Copy link
Contributor

@Gankra Gankra commented Dec 5, 2025

By teaching desperate resolution to try every possible ancestor that doesn't have an __init__.py(i) when resolving absolute imports.

@Gankra Gankra added ty Multi-file analysis & type inference ecosystem-analyzer labels Dec 5, 2025
@astral-sh-bot
Copy link

astral-sh-bot bot commented Dec 5, 2025

Diagnostic diff on typing conformance tests

No changes detected when running ty on typing conformance tests ✅

@astral-sh-bot
Copy link

astral-sh-bot bot commented Dec 5, 2025

mypy_primer results

Changes were detected when running on open source projects
spack (https://github.com/spack/spack)
- lib/spack/_vendoring/__init__.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.vendor`
- lib/spack/_vendoring/__init__.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.error`
+ lib/spack/docs/conf.py:135:1: error[invalid-assignment] Implicit shadowing of function `__get__`
- lib/spack/docs/conf.py:130:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/docs/conf.py:131:6: error[unresolved-import] Cannot resolve imported module `spack.spec_parser`
- lib/spack/docs/conf.py:315:8: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/docs/conf.py:316:8: error[unresolved-import] Cannot resolve imported module `spack.package`
- lib/spack/llnl/__init__.py:7:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/llnl/__init__.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.llnl`
- lib/spack/spack/__init__.py:9:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/__init__.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.util.git`
- lib/spack/spack/archspec.py:6:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.archspec.cpu`
- lib/spack/spack/archspec.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/audit.py:52:8: error[unresolved-import] Cannot resolve imported module `spack.builder`
- lib/spack/spack/audit.py:53:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/audit.py:54:8: error[unresolved-import] Cannot resolve imported module `spack.fetch_strategy`
- lib/spack/spack/audit.py:55:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/audit.py:56:8: error[unresolved-import] Cannot resolve imported module `spack.patch`
- lib/spack/spack/audit.py:57:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/audit.py:58:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/audit.py:59:8: error[unresolved-import] Cannot resolve imported module `spack.util.crypto`
- lib/spack/spack/audit.py:60:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
- lib/spack/spack/audit.py:61:8: error[unresolved-import] Cannot resolve imported module `spack.variant`
- lib/spack/spack/audit.py:62:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.string`
- lib/spack/spack/audit.py:604:12: error[unresolved-import] Cannot resolve imported module `spack.util.package_hash`
- lib/spack/spack/audit.py:1288:12: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/audit.py:1289:12: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/audit.py:1307:12: error[unresolved-import] Cannot resolve imported module `spack.detection`
- lib/spack/spack/binary_distribution.py:31:8: error[unresolved-import] Cannot resolve imported module `spack.caches`
- lib/spack/spack/binary_distribution.py:32:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/binary_distribution.py:33:8: error[unresolved-import] Cannot resolve imported module `spack.database`
- lib/spack/spack/binary_distribution.py:34:8: error[unresolved-import] Cannot resolve imported module `spack.deptypes`
- lib/spack/spack/binary_distribution.py:35:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/binary_distribution.py:36:8: error[unresolved-import] Cannot resolve imported module `spack.hash_types`
- lib/spack/spack/binary_distribution.py:37:8: error[unresolved-import] Cannot resolve imported module `spack.hooks`
- lib/spack/spack/binary_distribution.py:38:8: error[unresolved-import] Cannot resolve imported module `spack.hooks.sbang`
- lib/spack/spack/binary_distribution.py:39:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/binary_distribution.py:40:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/binary_distribution.py:41:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/binary_distribution.py:42:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/binary_distribution.py:43:8: error[unresolved-import] Cannot resolve imported module `spack.oci.image`
- lib/spack/spack/binary_distribution.py:44:8: error[unresolved-import] Cannot resolve imported module `spack.oci.oci`
- lib/spack/spack/binary_distribution.py:45:8: error[unresolved-import] Cannot resolve imported module `spack.oci.opener`
- lib/spack/spack/binary_distribution.py:46:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/binary_distribution.py:47:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/binary_distribution.py:48:8: error[unresolved-import] Cannot resolve imported module `spack.relocate`
- lib/spack/spack/binary_distribution.py:49:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/binary_distribution.py:50:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/binary_distribution.py:51:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/binary_distribution.py:52:8: error[unresolved-import] Cannot resolve imported module `spack.user_environment`
- lib/spack/spack/binary_distribution.py:53:8: error[unresolved-import] Cannot resolve imported module `spack.util.archive`
- lib/spack/spack/binary_distribution.py:54:8: error[unresolved-import] Cannot resolve imported module `spack.util.crypto`
- lib/spack/spack/binary_distribution.py:55:8: error[unresolved-import] Cannot resolve imported module `spack.util.file_cache`
- lib/spack/spack/binary_distribution.py:56:8: error[unresolved-import] Cannot resolve imported module `spack.util.gpg`
- lib/spack/spack/binary_distribution.py:57:8: error[unresolved-import] Cannot resolve imported module `spack.util.parallel`
- lib/spack/spack/binary_distribution.py:58:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/binary_distribution.py:59:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_json`
- lib/spack/spack/binary_distribution.py:60:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
- lib/spack/spack/binary_distribution.py:61:8: error[unresolved-import] Cannot resolve imported module `spack.util.timer`
- lib/spack/spack/binary_distribution.py:62:8: error[unresolved-import] Cannot resolve imported module `spack.util.url`
- lib/spack/spack/binary_distribution.py:63:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/binary_distribution.py:64:6: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/binary_distribution.py:65:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/binary_distribution.py:66:6: error[unresolved-import] Cannot resolve imported module `spack.oci.image`
- lib/spack/spack/binary_distribution.py:73:6: error[unresolved-import] Cannot resolve imported module `spack.oci.oci`
- lib/spack/spack/binary_distribution.py:80:6: error[unresolved-import] Cannot resolve imported module `spack.package_prefs`
- lib/spack/spack/binary_distribution.py:81:6: error[unresolved-import] Cannot resolve imported module `spack.relocate_text`
- lib/spack/spack/binary_distribution.py:82:6: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/binary_distribution.py:83:6: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/binary_distribution.py:506:84: warning[unused-ignore-comment] Unused blanket `type: ignore` directive
- lib/spack/spack/bootstrap/_common.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.archspec.cpu`
- lib/spack/spack/bootstrap/_common.py:16:6: error[unresolved-import] Cannot resolve imported module `spack.vendor.typing_extensions`
- lib/spack/spack/bootstrap/_common.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/bootstrap/_common.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/bootstrap/_common.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/bootstrap/_common.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/bootstrap/_common.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.util.environment`
- lib/spack/spack/bootstrap/_common.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/bootstrap/_common.py:24:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util`
- lib/spack/spack/bootstrap/clingo.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.archspec.cpu`
- lib/spack/spack/bootstrap/clingo.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.compilers.config`
- lib/spack/spack/bootstrap/clingo.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.compilers.libraries`
- lib/spack/spack/bootstrap/clingo.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/bootstrap/clingo.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.package_base`
- lib/spack/spack/bootstrap/clingo.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/bootstrap/clingo.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/bootstrap/clingo.py:24:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/bootstrap/clingo.py:25:8: error[unresolved-import] Cannot resolve imported module `spack.traverse`
- lib/spack/spack/bootstrap/clingo.py:26:8: error[unresolved-import] Cannot resolve imported module `spack.version`
- lib/spack/spack/bootstrap/config.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/bootstrap/config.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/bootstrap/config.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.modules`
- lib/spack/spack/bootstrap/config.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/bootstrap/config.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/bootstrap/config.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/bootstrap/config.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/bootstrap/config.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/bootstrap/config.py:19:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util`
- lib/spack/spack/bootstrap/core.py:32:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/bootstrap/core.py:33:8: error[unresolved-import] Cannot resolve imported module `spack.concretize`
- lib/spack/spack/bootstrap/core.py:34:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/bootstrap/core.py:35:8: error[unresolved-import] Cannot resolve imported module `spack.detection`
- lib/spack/spack/bootstrap/core.py:36:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/bootstrap/core.py:37:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/bootstrap/core.py:38:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/bootstrap/core.py:39:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/bootstrap/core.py:40:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/bootstrap/core.py:41:8: error[unresolved-import] Cannot resolve imported module `spack.user_environment`
- lib/spack/spack/bootstrap/core.py:42:8: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/bootstrap/core.py:43:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/bootstrap/core.py:44:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
- lib/spack/spack/bootstrap/core.py:45:8: error[unresolved-import] Cannot resolve imported module `spack.util.url`
- lib/spack/spack/bootstrap/core.py:46:8: error[unresolved-import] Cannot resolve imported module `spack.version`
- lib/spack/spack/bootstrap/core.py:47:6: error[unresolved-import] Cannot resolve imported module `spack.installer`
- lib/spack/spack/bootstrap/core.py:48:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util`
- lib/spack/spack/bootstrap/core.py:49:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/bootstrap/core.py:225:35: error[invalid-assignment] Object of type `dict[Unknown, Unknown]` is not assignable to `QueryInfo`
+ lib/spack/spack/bootstrap/status.py:24:19: warning[possibly-missing-attribute] Submodule `spec` may not be available as an attribute on module `spack`
- lib/spack/spack/bootstrap/core.py:267:27: error[invalid-assignment] Object of type `dict[Unknown, Unknown]` is not assignable to `QueryInfo`
- lib/spack/spack/bootstrap/core.py:307:27: error[invalid-assignment] Object of type `dict[Unknown, Unknown]` is not assignable to `QueryInfo`
- lib/spack/spack/bootstrap/environment.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.archspec.cpu`
- lib/spack/spack/bootstrap/environment.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/bootstrap/environment.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/bootstrap/environment.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.tengine`
- lib/spack/spack/bootstrap/environment.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/bootstrap/environment.py:17:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util`
- lib/spack/spack/bootstrap/status.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/build_environment.py:64:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.archspec.cpu`
- lib/spack/spack/build_environment.py:66:8: error[unresolved-import] Cannot resolve imported module `spack.builder`
- lib/spack/spack/build_environment.py:67:8: error[unresolved-import] Cannot resolve imported module `spack.compilers.libraries`
- lib/spack/spack/build_environment.py:68:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/build_environment.py:69:8: error[unresolved-import] Cannot resolve imported module `spack.deptypes`
- lib/spack/spack/build_environment.py:70:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/build_environment.py:71:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/build_environment.py:72:8: error[unresolved-import] Cannot resolve imported module `spack.multimethod`
- lib/spack/spack/build_environment.py:73:8: error[unresolved-import] Cannot resolve imported module `spack.package_base`
- lib/spack/spack/build_environment.py:74:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/build_environment.py:75:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/build_environment.py:76:8: error[unresolved-import] Cannot resolve imported module `spack.schema.environment`
- lib/spack/spack/build_environment.py:77:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/build_environment.py:78:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/build_environment.py:79:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/build_environment.py:80:8: error[unresolved-import] Cannot resolve imported module `spack.subprocess_context`
- lib/spack/spack/build_environment.py:81:8: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/build_environment.py:82:6: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/build_environment.py:83:6: error[unresolved-import] Cannot resolve imported module `spack.context`
- lib/spack/spack/build_environment.py:84:6: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/build_environment.py:85:6: error[unresolved-import] Cannot resolve imported module `spack.install_test`
- lib/spack/spack/build_environment.py:86:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.string`
- lib/spack/spack/build_environment.py:87:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/build_environment.py:88:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/build_environment.py:89:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/build_environment.py:90:6: error[unresolved-import] Cannot resolve imported module `spack.util.environment`
- lib/spack/spack/build_environment.py:101:6: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/build_environment.py:102:6: error[unresolved-import] Cannot resolve imported module `spack.util.log_parse`
- lib/spack/spack/build_environment.py:103:6: error[unresolved-import] Cannot resolve imported module `spack.util.module_cmd`
- lib/spack/spack/build_environment.py:833:60: warning[unused-ignore-comment] Unused blanket `type: ignore` directive
- lib/spack/spack/buildcache_migrate.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/buildcache_migrate.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.database`
- lib/spack/spack/buildcache_migrate.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/buildcache_migrate.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/buildcache_migrate.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/buildcache_migrate.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/buildcache_migrate.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/buildcache_migrate.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.util.crypto`
- lib/spack/spack/buildcache_migrate.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.util.parallel`
- lib/spack/spack/buildcache_migrate.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.util.url`
- lib/spack/spack/buildcache_migrate.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/buildcache_prune.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/buildcache_prune.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/buildcache_prune.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/buildcache_prune.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/buildcache_prune.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.util.parallel`
- lib/spack/spack/buildcache_prune.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.util.url`
- lib/spack/spack/buildcache_prune.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/buildcache_prune.py:21:6: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/builder.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.directives`
- lib/spack/spack/builder.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/builder.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.multimethod`
- lib/spack/spack/builder.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.package_base`
- lib/spack/spack/builder.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.phase_callbacks`
- lib/spack/spack/builder.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.relocate`
- lib/spack/spack/builder.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/builder.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/builder.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.util.environment`
- lib/spack/spack/builder.py:20:6: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/builder.py:21:6: error[unresolved-import] Cannot resolve imported module `spack.util.prefix`
+ lib/spack/spack/builder.py:219:16: error[invalid-return-type] Return type does not match returned value: expected `str`, found `Unknown | tuple[bool | str, ...] | bool | str`
- lib/spack/spack/builder.py:508:1: error[conflicting-metaclass] The metaclass of a derived class (`Builder`) must be a subclass of the metaclasses of all its bases, but `BuilderMeta` (metaclass of base class `BaseBuilder`) and `type` (metaclass of base class `Sequence`) have no subclass relationship
- lib/spack/spack/caches.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/caches.py:9:8: error[unresolved-import] Cannot resolve imported module `spack.fetch_strategy`
- lib/spack/spack/caches.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/caches.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/caches.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.util.file_cache`
- lib/spack/spack/caches.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/caches.py:14:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/caches.py:33:80: warning[unused-ignore-comment] Unused blanket `type: ignore` directive
- lib/spack/spack/caches.py:73:61: warning[unused-ignore-comment] Unused blanket `type: ignore` directive
- lib/spack/spack/ci/__init__.py:20:8: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/ci/__init__.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/ci/__init__.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.builder`
- lib/spack/spack/ci/__init__.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/ci/__init__.py:24:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/ci/__init__.py:25:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.path`
- lib/spack/spack/ci/__init__.py:26:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/ci/__init__.py:27:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/ci/__init__.py:28:8: error[unresolved-import] Cannot resolve imported module `spack.main`
- lib/spack/spack/ci/__init__.py:29:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/ci/__init__.py:30:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/ci/__init__.py:31:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/ci/__init__.py:32:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/ci/__init__.py:33:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/ci/__init__.py:34:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/ci/__init__.py:35:8: error[unresolved-import] Cannot resolve imported module `spack.util.git`
- lib/spack/spack/ci/__init__.py:36:8: error[unresolved-import] Cannot resolve imported module `spack.util.gpg`
- lib/spack/spack/ci/__init__.py:37:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
- lib/spack/spack/ci/__init__.py:38:8: error[unresolved-import] Cannot resolve imported module `spack.util.url`
- lib/spack/spack/ci/__init__.py:39:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/ci/__init__.py:40:6: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/ci/__init__.py:41:6: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/ci/__init__.py:42:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/ci/__init__.py:43:6: error[unresolved-import] Cannot resolve imported module `spack.reporters.cdash`
- lib/spack/spack/ci/common.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/ci/common.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/ci/common.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.deptypes`
- lib/spack/spack/ci/common.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/ci/common.py:24:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/ci/common.py:25:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/ci/common.py:26:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/ci/common.py:27:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/ci/common.py:28:8: error[unresolved-import] Cannot resolve imported module `spack.schema`
- lib/spack/spack/ci/common.py:29:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/ci/common.py:30:8: error[unresolved-import] Cannot resolve imported module `spack.util.compression`
- lib/spack/spack/ci/common.py:31:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/ci/common.py:32:6: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/ci/common.py:33:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/ci/common.py:34:6: error[unresolved-import] Cannot resolve imported module `spack.reporters`
- lib/spack/spack/ci/common.py:35:6: error[unresolved-import] Cannot resolve imported module `spack.reporters.cdash`
- lib/spack/spack/ci/common.py:36:6: error[unresolved-import] Cannot resolve imported module `spack.reporters.cdash`
- lib/spack/spack/ci/common.py:37:6: error[unresolved-import] Cannot resolve imported module `spack.url_buildcache`
- lib/spack/spack/ci/generator_registry.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/ci/gitlab.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.ruamel.yaml`
- lib/spack/spack/ci/gitlab.py:12:8: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/ci/gitlab.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/ci/gitlab.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/ci/gitlab.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/ci/gitlab.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/ci/gitlab.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.schema`
- lib/spack/spack/ci/gitlab.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/ci/gitlab.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/ci/gitlab.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
+ lib/spack/spack/cmd/__init__.py:374:16: error[invalid-argument-type] Argument to function `dump` is incorrect: Expected `dict[Unknown, Unknown]`, found `list[Unknown]`
+ lib/spack/spack/cmd/__init__.py:523:20: error[invalid-argument-type] Argument to function `colify` is incorrect: Expected `list[Any]`, found `GeneratorType[Unknown, None, None]`
+ lib/spack/spack/cmd/blame.py:158:38: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | PathLike[str]`, found `object`
+ lib/spack/spack/cmd/blame.py:168:38: error[invalid-argument-type] Argument to function `__new__` is incorrect: Expected `str | PathLike[str]`, found `object`
- lib/spack/spack/cmd/__init__.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.concretize`
- lib/spack/spack/cmd/__init__.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/__init__.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/cmd/__init__.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/cmd/__init__.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.extensions`
- lib/spack/spack/cmd/__init__.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.string`
- lib/spack/spack/cmd/__init__.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/__init__.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/cmd/__init__.py:24:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/cmd/__init__.py:25:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/__init__.py:26:8: error[unresolved-import] Cannot resolve imported module `spack.spec_parser`
- lib/spack/spack/cmd/__init__.py:27:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/cmd/__init__.py:28:8: error[unresolved-import] Cannot resolve imported module `spack.traverse`
- lib/spack/spack/cmd/__init__.py:29:8: error[unresolved-import] Cannot resolve imported module `spack.user_environment`
- lib/spack/spack/cmd/__init__.py:30:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_json`
- lib/spack/spack/cmd/__init__.py:31:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
- lib/spack/spack/cmd/__init__.py:32:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/cmd/__init__.py:33:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/cmd/__init__.py:34:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.colify`
- lib/spack/spack/cmd/__init__.py:35:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/cmd/add.py:7:8: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/add.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/add.py:9:6: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/arch.py:9:8: error[unresolved-import] Cannot resolve imported module `spack.vendor.archspec.cpu`
- lib/spack/spack/cmd/arch.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.colify`
- lib/spack/spack/cmd/arch.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/cmd/arch.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/cmd/arch.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/audit.py:7:8: error[unresolved-import] Cannot resolve imported module `spack.audit`
- lib/spack/spack/cmd/audit.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/audit.py:9:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.colify`
- lib/spack/spack/cmd/audit.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/cmd/audit.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/cmd/blame.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/blame.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/blame.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/cmd/blame.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.util.git`
- lib/spack/spack/cmd/blame.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_json`
- lib/spack/spack/cmd/blame.py:17:6: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/blame.py:18:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/cmd/blame.py:19:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/cmd/blame.py:20:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.colify`
- lib/spack/spack/cmd/blame.py:21:6: error[unresolved-import] Cannot resolve imported module `spack.util.executable`
- lib/spack/spack/cmd/blame.py:246:30: error[invalid-argument-type] Argument to function `git_prefix` is incorrect: Expected `str | Path`, found `None | Unknown`
+ lib/spack/spack/cmd/blame.py:246:30: error[invalid-argument-type] Argument to function `git_prefix` is incorrect: Expected `str | Path`, found `None | Unknown | str`
- lib/spack/spack/cmd/blame.py:288:17: warning[possibly-unresolved-reference] Name `lines` used when possibly not defined
- lib/spack/spack/cmd/bootstrap.py:11:8: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/cmd/bootstrap.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.bootstrap`
- lib/spack/spack/cmd/bootstrap.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.bootstrap.config`
- lib/spack/spack/cmd/bootstrap.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.bootstrap.core`
- lib/spack/spack/cmd/bootstrap.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.cmd.mirror`
- lib/spack/spack/cmd/bootstrap.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.concretize`
- lib/spack/spack/cmd/bootstrap.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/bootstrap.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/cmd/bootstrap.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/bootstrap.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/cmd/bootstrap.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/cmd/bootstrap.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
+ lib/spack/spack/cmd/bootstrap.py:185:39: error[unresolved-attribute] Object of type `ConfigScope` has no attribute `path`
+ lib/spack/spack/cmd/buildcache.py:342:27: warning[possibly-missing-attribute] Submodule `colify` may not be available as an attribute on module `spack.llnl.util.tty`
+ lib/spack/spack/cmd/checksum.py:164:20: error[invalid-assignment] Object of type `dict[StandardVersion, str] | None` is not assignable to `dict[StandardVersion, str]`
- lib/spack/spack/cmd/bootstrap.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.util.spack_yaml`
- lib/spack/spack/cmd/bootstrap.py:24:6: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/build_env.py:5:8: error[unresolved-import] Cannot resolve imported module `spack.cmd.common.env_utility`
- lib/spack/spack/cmd/build_env.py:6:6: error[unresolved-import] Cannot resolve imported module `spack.context`
- lib/spack/spack/cmd/buildcache.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/cmd/buildcache.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/buildcache.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.concretize`
- lib/spack/spack/cmd/buildcache.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/buildcache.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.deptypes`
- lib/spack/spack/cmd/buildcache.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/cmd/buildcache.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/cmd/buildcache.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/buildcache.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/cmd/buildcache.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.oci.image`
- lib/spack/spack/cmd/buildcache.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.oci.oci`
- lib/spack/spack/cmd/buildcache.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/buildcache.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/cmd/buildcache.py:24:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/cmd/buildcache.py:25:8: error[unresolved-import] Cannot resolve imported module `spack.util.parallel`
- lib/spack/spack/cmd/buildcache.py:26:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/cmd/buildcache.py:27:6: error[unresolved-import] Cannot resolve imported module `spack`
- lib/spack/spack/cmd/buildcache.py:28:6: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/buildcache.py:29:6: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/buildcache.py:30:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.string`
- lib/spack/spack/cmd/buildcache.py:31:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/cmd/buildcache.py:32:6: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/buildcache.py:521:29: warning[possibly-unresolved-reference] Name `specs` used when possibly not defined
- lib/spack/spack/cmd/buildcache.py:525:29: warning[possibly-unresolved-reference] Name `specs` used when possibly not defined
- lib/spack/spack/cmd/buildcache.py:527:22: warning[possibly-unresolved-reference] Name `specs` used when possibly not defined
- lib/spack/spack/cmd/buildcache.py:534:19: warning[possibly-unresolved-reference] Name `specs` used when possibly not defined
- lib/spack/spack/cmd/cd.py:7:8: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/cd.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.cmd.location`
- lib/spack/spack/cmd/change.py:7:8: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/change.py:8:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/change.py:9:6: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/checksum.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.string`
- lib/spack/spack/cmd/checksum.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.lang`
- lib/spack/spack/cmd/checksum.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/cmd/checksum.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/checksum.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/cmd/checksum.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/cmd/checksum.py:16:6: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/checksum.py:17:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util`
- lib/spack/spack/cmd/checksum.py:18:6: error[unresolved-import] Cannot resolve imported module `spack.package_base`
- lib/spack/spack/cmd/checksum.py:24:6: error[unresolved-import] Cannot resolve imported module `spack.util.editor`
- lib/spack/spack/cmd/checksum.py:25:6: error[unresolved-import] Cannot resolve imported module `spack.util.format`
- lib/spack/spack/cmd/checksum.py:26:6: error[unresolved-import] Cannot resolve imported module `spack.version`
- lib/spack/spack/cmd/ci.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.binary_distribution`
- lib/spack/spack/cmd/ci.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.ci`
- lib/spack/spack/cmd/ci.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/ci.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.cmd.buildcache`
- lib/spack/spack/cmd/ci.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.cmd.common.arguments`
- lib/spack/spack/cmd/ci.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/ci.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.environment`
- lib/spack/spack/cmd/ci.py:20:8: error[unresolved-import] Cannot resolve imported module `spack.error`
- lib/spack/spack/cmd/ci.py:21:8: error[unresolved-import] Cannot resolve imported module `spack.fetch_strategy`
- lib/spack/spack/cmd/ci.py:22:8: error[unresolved-import] Cannot resolve imported module `spack.hash_types`
- lib/spack/spack/cmd/ci.py:23:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/cmd/ci.py:24:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/cmd/ci.py:25:8: error[unresolved-import] Cannot resolve imported module `spack.mirrors.mirror`
- lib/spack/spack/cmd/ci.py:26:8: error[unresolved-import] Cannot resolve imported module `spack.package_base`
- lib/spack/spack/cmd/ci.py:27:8: error[unresolved-import] Cannot resolve imported module `spack.repo`
- lib/spack/spack/cmd/ci.py:28:8: error[unresolved-import] Cannot resolve imported module `spack.spec`
- lib/spack/spack/cmd/ci.py:29:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/cmd/ci.py:30:8: error[unresolved-import] Cannot resolve imported module `spack.util.git`
- lib/spack/spack/cmd/ci.py:31:8: error[unresolved-import] Cannot resolve imported module `spack.util.gpg`
- lib/spack/spack/cmd/ci.py:32:8: error[unresolved-import] Cannot resolve imported module `spack.util.timer`
- lib/spack/spack/cmd/ci.py:33:8: error[unresolved-import] Cannot resolve imported module `spack.util.url`
- lib/spack/spack/cmd/ci.py:34:8: error[unresolved-import] Cannot resolve imported module `spack.util.web`
- lib/spack/spack/cmd/ci.py:35:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util`
- lib/spack/spack/cmd/ci.py:36:6: error[unresolved-import] Cannot resolve imported module `spack.version`
- lib/spack/spack/cmd/ci.py:425:18: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:448:61: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:490:50: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:506:51: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:519:29: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:528:17: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:532:43: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:542:13: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:549:42: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:555:50: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:567:30: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:593:46: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:600:24: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:608:20: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/ci.py:616:31: warning[possibly-unresolved-reference] Name `job_spec` used when possibly not defined
- lib/spack/spack/cmd/clean.py:9:8: error[unresolved-import] Cannot resolve imported module `spack.caches`
- lib/spack/spack/cmd/clean.py:10:8: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/clean.py:11:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/clean.py:12:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.filesystem`
- lib/spack/spack/cmd/clean.py:13:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/clean.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.stage`
- lib/spack/spack/cmd/clean.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.store`
- lib/spack/spack/cmd/clean.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.util.path`
- lib/spack/spack/cmd/clean.py:17:6: error[unresolved-import] Cannot resolve imported module `spack.cmd.common`
- lib/spack/spack/cmd/clean.py:18:6: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/cmd/commands.py:14:8: error[unresolved-import] Cannot resolve imported module `spack.cmd`
- lib/spack/spack/cmd/commands.py:15:8: error[unresolved-import] Cannot resolve imported module `spack.config`
- lib/spack/spack/cmd/commands.py:16:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/commands.py:17:8: error[unresolved-import] Cannot resolve imported module `spack.main`
- lib/spack/spack/cmd/commands.py:18:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/cmd/commands.py:19:8: error[unresolved-import] Cannot resolve imported module `spack.platforms`
- lib/spack/spack/cmd/commands.py:20:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.argparsewriter`
- lib/spack/spack/cmd/commands.py:21:6: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.colify`
- lib/spack/spack/cmd/commands.py:22:6: error[unresolved-import] Cannot resolve imported module `spack.main`
- lib/spack/spack/cmd/common/__init__.py:5:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty`
- lib/spack/spack/cmd/common/__init__.py:6:8: error[unresolved-import] Cannot resolve imported module `spack.llnl.util.tty.color`
- lib/spack/spack/cmd/common/__init__.py:7:8: error[unresolved-import] Cannot resolve imported module `spack.paths`
- lib/spack/spack/cmd/common/arguments.py:10:8: error[unre

... (truncated 9855 lines) ...

No memory usage changes detected ✅

@Gankra Gankra changed the title [ty] don't add tests folders as roots [ty] move pytest search-path handling to desperate resolution Dec 5, 2025
@Gankra Gankra changed the title [ty] move pytest search-path handling to desperate resolution [ty] Move pytest search-path handling to desperate resolution Dec 5, 2025
@Gankra
Copy link
Contributor Author

Gankra commented Dec 5, 2025

Hmm this is tricky with the tests we have written, I need to look into what pytest actually does/supports.

@Gankra
Copy link
Contributor Author

Gankra commented Dec 5, 2025

Can't believe Carl convinced me randomly including tests with or without tests/__init__.py was arbitrary paranoia and not me having dark foresight of the nature of imports.

@astral-sh-bot
Copy link

astral-sh-bot bot commented Dec 5, 2025

ecosystem-analyzer results

Lint rule Added Removed Changed
unresolved-import 33 7,404 57
possibly-missing-attribute 531 10 39
unresolved-reference 0 535 0
invalid-argument-type 509 4 5
unresolved-attribute 283 3 0
unused-ignore-comment 2 168 0
unknown-argument 57 26 0
unsupported-operator 72 0 0
missing-argument 58 0 0
no-matching-overload 58 0 0
invalid-assignment 46 5 3
possibly-unresolved-reference 0 50 0
invalid-method-override 42 0 0
invalid-return-type 5 10 1
non-subscriptable 13 0 0
not-iterable 7 0 4
invalid-exception-caught 6 0 0
invalid-raise 6 0 0
unsupported-base 6 0 0
too-many-positional-arguments 5 0 0
call-non-callable 4 0 0
deprecated 4 0 0
inconsistent-mro 4 0 0
parameter-already-assigned 3 0 0
conflicting-metaclass 0 2 0
invalid-parameter-default 1 0 0
Total 1,755 8,217 109

Full report with detailed diff (timing results)

@Gankra
Copy link
Contributor Author

Gankra commented Dec 5, 2025

Notably having multiple desperate search-paths is problematic for resolving relative imports, with our two-phases file_to_module and then resolve_module system. If . resolves to thismod then file_to_module succeeds but .sibling is syntactically invalid (only sibling works).

@Gankra
Copy link
Contributor Author

Gankra commented Dec 5, 2025

One kind of hacky solution would be to refuse to consider the dir the file is in a desperate search-path in file_to_module as we are typically resolving a relative import and so "this is a root module" is not helpful.

@Gankra
Copy link
Contributor Author

Gankra commented Dec 5, 2025

Tears of joy at how good these docs are omg https://docs.pytest.org/en/stable/explanation/pythonpath.html

@Gankra
Copy link
Contributor Author

Gankra commented Dec 5, 2025

One kind of hacky solution would be to refuse to consider the dir the file is in a desperate search-path in file_to_module as we are typically resolving a relative import and so "this is a root module" is not helpful.

The same can be accomplished by reversing the priority of the desperate search-paths: try the farthest ancestor dir first, allowing us to resolve . as the longest-possible-absolute path that is still valid.

@Gankra
Copy link
Contributor Author

Gankra commented Dec 12, 2025

woah oh god those results

@Gankra Gankra marked this pull request as ready for review December 12, 2025 15:35
@Gankra Gankra changed the title [ty] Move pytest search-path handling to desperate resolution [ty] Improve resolution of absolute imports in tests Dec 12, 2025
@BurntSushi BurntSushi merged commit d554650 into main Dec 12, 2025
42 checks passed
@BurntSushi BurntSushi deleted the gankra/notest branch December 12, 2025 16:59
@MichaReiser
Copy link
Member

If not already done, we need to make sure that the option defaults and documentation reflect the newest change regarding the default root paths.

@carljm
Copy link
Contributor

carljm commented Dec 12, 2025

I think the spack ecosystem results mostly suggest that it ought to have lib/ in its environment.roots.

But I guess not doing that makes it a good test case for what happens when ty is used in a project with an unusual layout and no configuration...

Gankra added a commit that referenced this pull request Dec 12, 2025
## Summary

./tests is now no longer an implicit root, per
#21817
dcreager added a commit that referenced this pull request Dec 13, 2025
* origin/main: (22 commits)
  [ty] Allow gradual lower/upper bounds in a constraint set (#21957)
  [ty] disallow explicit specialization of type variables themselves (#21938)
  [ty] Improve diagnostics for unsupported binary operations and unsupported augmented assignments (#21947)
  [ty] update implicit root docs (#21955)
  [ty] Enable even more goto-definition on inlay hints (#21950)
  Document known lambda formatting deviations from Black (#21954)
  [ty] fix hover type on named expression target (#21952)
  Bump benchmark dependencies (#21951)
  Keep lambda parameters on one line and parenthesize the body if it expands (#21385)
  [ty] Improve resolution of absolute imports in tests (#21817)
  [ty] Support `__all__ += submodule.__all__`
  [ty] Change frequency of invalid `__all__` debug message
  [ty] Add `KnownUnion::to_type()` (#21948)
  [ty] Classify `cls` as class parameter (#21944)
  [ty] Stabilize rename (#21940)
  [ty] Ignore `__all__` for document and workspace symbol requests
  [ty] Attach db to background request handler task (#21941)
  [ty] Fix outdated version in publish diagnostics after `didChange` (#21943)
  [ty] avoid fixpoint unioning of types containing current-cycle Divergent (#21910)
  [ty] improve bad specialization results & error messages (#21840)
  ...
Gankra added a commit to astral-sh/ty that referenced this pull request Dec 13, 2025
As of astral-sh/ruff#21817, ./tests are no
longer implicitly included.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ecosystem-analyzer ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove tests from the environment.root default

4 participants