Files
codeql/python/ql/test/query-tests/Imports/PyCheckerTests/ModuleImportsItself.expected
Rasmus Wriedt Larsen f3f9e340d3 Python: Update tests for py/import-own-module
So I've been thinking a bit about import pkg_ok.foo1 after reading the Python
references for imports of submodules
https://docs.python.org/3/reference/import.html#submodules

> When a submodule is loaded using any mechanism (...) a binding is placed in the
parent module’s namespace to the submodule object. For example, if package spam
has a submodule foo, after importing spam.foo, spam will have an attribute foo
which is bound to the submodule.

That does at least explain what is going on here.

I feel that import pkg_ok.foo1 might be a very contrived example. In principle
it should be an alert, since the module pkg_ok ends up with an import of itself,
but my gut feeling is that in practice it's not a very important piece of code
to give alerts for. if we really care about giving these import related alerts,
we could probably add a new query for this pattern, as it's kind of surprising
that it works when you're just an ordinary python programmer.
2020-02-11 11:45:48 +01:00

11 lines
823 B
Plaintext

| imports_test.py:8:1:8:19 | Import | The module 'imports_test' imports itself. |
| pkg_notok/__init__.py:4:1:4:16 | Import | The module 'pkg_notok' imports itself. |
| pkg_notok/__init__.py:10:1:10:20 | Import | The module 'pkg_notok' imports itself. |
| pkg_notok/__init__.py:12:1:12:25 | Import | The module 'pkg_notok' imports itself. |
| pkg_notok/__init__.py:13:1:13:37 | Import | The module 'pkg_notok' imports itself. |
| pkg_ok/__init__.py:1:1:1:26 | Import | The module 'pkg_ok' imports itself. |
| pkg_ok/__init__.py:3:1:3:23 | Import | The module 'pkg_ok' imports itself. |
| pkg_ok/__init__.py:4:1:4:28 | Import | The module 'pkg_ok' imports itself. |
| pkg_ok/__init__.py:6:1:6:18 | Import | The module 'pkg_ok' imports itself. |
| pkg_ok/__init__.py:7:1:7:22 | Import | The module 'pkg_ok' imports itself. |