import os
import sys
import importlib

# Установка рабочего каталога
os.chdir('C:\\Users\\User-PC\\python-labs\\TEMA8')
print(f"Текущий каталог: {os.getcwd()}")

# Импорт модуля Mod1
import Mod1

print(f"Тип Mod1: {type(Mod1)}")
print(f"Содержимое Mod1: {dir(Mod1)}")
print(f"Mod1.perm1 = {Mod1.perm1}")

# Перезагрузка модуля
importlib.reload(Mod1)
print(f"Mod1.perm1 после перезагрузки: {Mod1.perm1}")

# Просмотр загруженных модулей
print("Загруженные модули:")
print(sorted(sys.modules.keys())[:10])  # Показываем только первые 10

# Удаление модуля из кеша и повторный импорт
sys.modules.pop('Mod1')
import Mod1

# Выполнение кода из файла
exec(open('Mod1.py', encoding='utf-8').read())

# Импорт конкретной переменной
from Mod1 import perm1
print(f"perm1 = {perm1}")

# Импорт из Mod2
from Mod2 import beta
g = beta(2)
print(f"g = {g}")

# Импорт с псевдонимом
from Mod2 import alpha as al
result = al()
print(f"Результат alpha(): {result}")

# Импорт всех функций
from Mod2 import *
tt = alpha()
uu = beta(float(tt))
print(f"tt = {tt}, uu = {uu}")

# Очистка кеша модулей
sys.modules.pop('Mod1')
sys.modules.pop('Mod2')

# Импорт составного модуля
import Mod0
print(f"Mod0.tt = {Mod0.tt}")
print(f"Mod0.qq = {Mod0.qq}")
print(f"Mod0.Mod1.perm1 = {Mod0.Mod1.perm1}")

# Импорт модуля с моделированием
import MM2
print('y =', MM2.vyhod)