mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-30 22:01:47 +00:00

Some checks are pending
CI / cargo fmt (push) Waiting to run
CI / Determine changes (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
1.4 KiB
1.4 KiB
Namespace package
Basic namespace package
[environment]
python = "/.venv"
parent/child/one.py
:
one = 1
/.venv/<path-to-site-packages>/parent/child/two.py
:
two = 2
main.py
:
import parent.child.one
import parent.child.two
from.py
# TODO: This should not be an error
from parent.child import one, two # error: [unresolved-import]
Regular package in namespace package
[environment]
python = "/.venv"
An adapted test case from the
PEP420 examples. The
src/parent/child
package is a regular package. Therefore, site_packages/parent/child/two.py
should not be resolved.
src
parent
child
__init__.py
one.py
.venv/site-packages
parent
child
two.py
parent/child/__init__.py
:
parent/child/one.py
:
one = 1
/.venv/<path-to-site-packages>/parent/child/two.py
:
two = 2
main.py
:
import parent.child.one
import parent.child.two # error: [unresolved-import]
Priority between file and identically named namespace package
If there's a namespace package with the same name as a module, the module takes precedence.
foo.py
:
x = "module"
foo/bar.py
:
x = "namespace"
from foo import x
reveal_type(x) # revealed: Unknown | Literal["module"]
import foo.bar # error: [unresolved-import]