mirror of
https://github.com/Nuitka/Nuitka.git
synced 2026-02-05 11:33:32 +01:00
63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
|
|
|
|
"""Test to check if pkgutil.iter_modules works with compiled packages properly."""
|
|
|
|
from __future__ import print_function
|
|
|
|
import importlib
|
|
import pkgutil
|
|
|
|
# isort:start
|
|
|
|
# Tests are dirty on purpose.
|
|
#
|
|
# pylint: disable=unused-import
|
|
|
|
import some_package.sub_package1.SomeModuleC
|
|
import some_package.sub_package1.SomeModuleD
|
|
import some_package.sub_package2.SomeModuleA
|
|
import some_package.sub_package2.SomeModuleB
|
|
|
|
# nuitka-skip-unless-imports: importlib
|
|
|
|
|
|
# Use the original "__file__" value normally, at least one case warns
|
|
# about things with filename included, but for pkgutil iteration, make
|
|
# sure we do not see original Python dirs.
|
|
|
|
# nuitka-project: --file-reference-choice=runtime
|
|
|
|
# nuitka-project: --follow-imports
|
|
|
|
print("Checking with 'pkg_util.iter_modules' what was included:")
|
|
pkg = __import__("some_package")
|
|
print("Package is", pkg)
|
|
|
|
it = pkgutil.iter_modules(pkg.__path__)
|
|
for r in it:
|
|
print(r[1], r[2])
|
|
|
|
if r[2]:
|
|
sub_pkg = importlib.import_module("some_package." + r[1])
|
|
for r2 in pkgutil.iter_modules(sub_pkg.__path__):
|
|
print(" ", r2[1], r2[2])
|
|
|
|
|
|
print("Done")
|
|
|
|
# Python tests originally created or extracted from other peoples work. The
|
|
# parts were too small to be protected.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|