dfa7677e2f
This verifies the behavior: - Exact matches of built-ins bypass filesystem. - u-prefix modules can be overridden from the filesystem. - Builtin import can be forced using either u-prefix or sys.path=[]. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
37 lines
829 B
Python
37 lines
829 B
Python
import sys
|
|
|
|
print(sys, hasattr(sys, "__file__"))
|
|
|
|
sys.path.clear()
|
|
sys.path.append("ext")
|
|
|
|
# All three should only get builtins, despite sys.py, usys.py, and
|
|
# micropython.py being in the path.
|
|
import micropython
|
|
|
|
print(micropython, hasattr(micropython, "__file__"))
|
|
import sys
|
|
|
|
print(sys, hasattr(sys, "__file__"))
|
|
import usys
|
|
|
|
print(usys, hasattr(usys, "__file__"))
|
|
|
|
# This should get os.py, which uses uos to get the builtin.
|
|
import os
|
|
|
|
print(os, hasattr(os, "__file__"), os.sep, os.extra)
|
|
|
|
# This should get time.py, which uses empty sys.path to get the builtin.
|
|
import time
|
|
|
|
print(time, hasattr(time, "__file__"), time.sleep, time.extra)
|
|
|
|
# These should get the builtins.
|
|
import uos
|
|
|
|
print(uos, hasattr(uos, "__file__"), hasattr(uos, "extra"))
|
|
import utime
|
|
|
|
print(utime, hasattr(utime, "__file__"), hasattr(utime, "extra"))
|