mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-02 09:52:18 +00:00
21 lines
No EOL
857 B
Markdown
21 lines
No EOL
857 B
Markdown
# implicit-namespace-package (INP001)
|
|
|
|
Derived from the **flake8-no-pep420** linter.
|
|
|
|
### What it does
|
|
Checks for packages that are missing an `__init__.py` file.
|
|
|
|
### Why is this bad?
|
|
Python packages are directories that contain a file named `__init__.py`.
|
|
The existence of this file indicates that the directory is a Python
|
|
package, and so it can be imported the same way a module can be
|
|
imported.
|
|
|
|
Directories that lack an `__init__.py` file can still be imported, but
|
|
they're indicative of a special kind of package, known as a namespace
|
|
package (see: [PEP 420](https://www.python.org/dev/peps/pep-0420/)).
|
|
|
|
Namespace packages are a relatively new feature of Python, and they're
|
|
not widely used. So a package that lacks an `__init__.py` file is
|
|
typically meant to be a regular package, and the absence of the
|
|
`__init__.py` file is probably an oversight. |