Merge pull request #14114 from yoff/python/allow-namespace-packages

Python: Allow namespace packages
This commit is contained in:
yoff
2023-10-26 16:56:05 +02:00
committed by GitHub
17 changed files with 146 additions and 40 deletions

View File

@@ -5,5 +5,4 @@
| six.moves.range | builtin-class xrange |
| six.moves.urllib | Package six.moves.urllib |
| six.moves.urllib.parse | Module six.moves.urllib_parse |
| six.moves.urllib.parse.urlsplit | Function urlsplit |
| six.moves.zip | Builtin-function zip |

View File

@@ -1,5 +1,14 @@
| module | hash_bang/module.py:0:0:0:0 | Module module |
| module | name_main/module.py:0:0:0:0 | Module module |
| namespace_package | hash_bang/namespace_package:0:0:0:0 | Package namespace_package |
| namespace_package | name_main/namespace_package:0:0:0:0 | Package namespace_package |
| namespace_package | no_py_extension/namespace_package:0:0:0:0 | Package namespace_package |
| namespace_package.namespace_package_main | hash_bang/namespace_package/namespace_package_main.py:0:0:0:0 | Module namespace_package.namespace_package_main |
| namespace_package.namespace_package_main | name_main/namespace_package/namespace_package_main.py:0:0:0:0 | Module namespace_package.namespace_package_main |
| namespace_package.namespace_package_main | no_py_extension/namespace_package/namespace_package_main.py:0:0:0:0 | Module namespace_package.namespace_package_main |
| namespace_package.namespace_package_module | hash_bang/namespace_package/namespace_package_module.py:0:0:0:0 | Module namespace_package.namespace_package_module |
| namespace_package.namespace_package_module | name_main/namespace_package/namespace_package_module.py:0:0:0:0 | Module namespace_package.namespace_package_module |
| namespace_package.namespace_package_module | no_py_extension/namespace_package/namespace_package_module.py:0:0:0:0 | Module namespace_package.namespace_package_module |
| package | hash_bang/package:0:0:0:0 | Package package |
| package | name_main/package:0:0:0:0 | Package package |
| package | no_py_extension/package:0:0:0:0 | Package package |

View File

@@ -5,5 +5,4 @@
| six.moves.range | builtin-class range |
| six.moves.urllib | Package six.moves.urllib |
| six.moves.urllib.parse | Module six.moves.urllib_parse |
| six.moves.urllib.parse.urlsplit | Function urlsplit |
| six.moves.zip | builtin-class zip |

View File

@@ -16,7 +16,13 @@ Since PEP 420 was accepted in Python 3, this test is Python 3 only.
from foo.bar.a import afunc
from foo_explicit.bar.a import explicit_afunc
from not_root.baz.foo import foo_func
from not_root.baz.bar.a import afunc as afunc2
afunc() # $ pt,tt="foo/bar/a.py:afunc"
explicit_afunc() # $ pt,tt="foo_explicit/bar/a.py:explicit_afunc"
foo_func() # $ pt,tt="not_root/baz/foo.py:foo_func"
afunc2() # $ pt,tt="not_root/baz/bar/a.py:afunc"

View File

@@ -1,3 +1,6 @@
def afunc():
print("afunc called")
return 1
print("afunc called")
return 1
from foo.foo import foo_func
foo_func() # $ pt,tt="foo/foo.py:foo_func"

View File

@@ -0,0 +1,2 @@
def foo_func():
print("foo_func called")

View File

@@ -1,3 +1,6 @@
def explicit_afunc():
print("explicit_afunc called")
return 1
print("explicit_afunc called")
return 1
from foo_explicit.foo_explicit import foo_explicit_func
foo_explicit_func() # $ pt,tt="foo_explicit/foo_explicit.py:foo_explicit_func"

View File

@@ -0,0 +1,2 @@
def foo_explicit_func():
print("foo_explicit_func called")

View File

@@ -0,0 +1,6 @@
def afunc():
print("afunc called")
return 1
from not_root.baz.foo import foo_func
foo_func() # $ pt,tt="not_root/baz/foo.py:foo_func"

View File

@@ -0,0 +1,2 @@
def foo_func():
print("foo_func called")

View File

@@ -1 +1 @@
semmle-extractor-options: --max-import-depth=1 --lang=3
semmle-extractor-options: --max-import-depth=3 --lang=3

View File

@@ -0,0 +1,3 @@
| Local module | code-invalid-package-name/cmd.py:0:0:0:0 | Module cmd | referenced in external file called | pdb.py |
| Local module | code-invalid-package-name/cmd.py:0:0:0:0 | Module cmd | referenced in local file called | test_ok.py |
| Local module | code-invalid-package-name/unique_name.py:0:0:0:0 | Module unique_name | referenced in local file called | unique_name_use.py |

View File

@@ -1,5 +1,5 @@
| code-invalid-package-name/cmd.py:0:0:0:0 | Script cmd.py |
| code-invalid-package-name/cmd.py:0:0:0:0 | Module cmd |
| code-invalid-package-name/test_fail.py:0:0:0:0 | Script test_fail.py |
| code-invalid-package-name/test_ok.py:0:0:0:0 | Script test_ok.py |
| code-invalid-package-name/unique_name.py:0:0:0:0 | Script unique_name.py |
| code-invalid-package-name/unique_name.py:0:0:0:0 | Module unique_name |
| code-invalid-package-name/unique_name_use.py:0:0:0:0 | Script unique_name_use.py |

View File

@@ -1,3 +1,3 @@
| Module 'cmd' (external, in stdlib, not missing) referenced in local file | code-invalid-package-name/test_ok.py:1 |
| Module 'cmd' (local, not in stdlib, not missing) referenced in local file | code-invalid-package-name/test_ok.py:1 |
| Module 'pdb' (external, in stdlib, not missing) referenced in local file | code-invalid-package-name/test_fail.py:3 |
| Module 'unique_name' (external, not in stdlib, missing) referenced in local file | code-invalid-package-name/unique_name_use.py:1 |
| Module 'unique_name' (local, not in stdlib, not missing) referenced in local file | code-invalid-package-name/unique_name_use.py:1 |