Vesper
с selenium webdriver работал кто? можно там как-то получить xhr запросы с вкладки devtools -> network?
Vesper
в chromedriver
Nikolay
Конечно для тестов
Vesper
=)
Vesper
Нет, он же для тестов интерфейса
там как-то через дебаг интерфейс хрома селениумом можно прицепится и сливать все. Но примеры на явке сбивают с толку местами
Кіт ✙
такой вот вопросик
Кіт ✙
testing1: first.py testing2: second.py first.py: second = __import__('../testing2/second')
Кіт ✙
под какой директорией будет работать second.py
Кіт ✙
под родной, testing2?
Кіт ✙
чисто чтобы быть уверенным спрашиваю
Tishka17
Чо
Tishka17
Какой нафиг __import__
Кіт ✙
Какой нафиг __import__
динамический импорт, что тут такого
Tishka17
И что значит "под какой директорией"?
Кіт ✙
Tishka17
динамический импорт, что тут такого
Во-первых importlib юзай, во-вторых это прям очень редкий кейс
Tishka17
testing1 или testing2, какой же ещё
Нет, я не понял что значит "под директорией"
Кіт ✙
Во-первых importlib юзай, во-вторых это прям очень редкий кейс
чем тебе динамический импорт не нравится?
Кіт ✙
Нет, я не понял что значит "под директорией"
сформулирую вопрос иначе. В какой директории
Tishka17
Текущая директория никак не связана с импортами
Tishka17
А импорты посредственно связаны с директориями
Кіт ✙
Текущая директория никак не связана с импортами
другими словами - second.py так и будет работать в testing2?
Tishka17
другими словами - second.py так и будет работать в testing2?
Нет. Текущая директория никак не связана в testing2
Tishka17
Ты можешь находиться хз где и это запустить
Tishka17
И текущая директория не сменится на testing2
Кіт ✙
не, я не о том
Кіт ✙
я не про основной скрипт
Кіт ✙
я про работу самого модуля
Tishka17
Так я и спрашиваю, о чем ты
Кіт ✙
Так я и спрашиваю, о чем ты
одна программа импортирует вторую из другой директории. Кто где будет работать?
Tishka17
Текущая директория одна на процесс
Tishka17
Операционной системе пофиг на твои файлы и модули
Кіт ✙
типа, насколько я понимаю, first.py будет работать в testing1, а second.py - в testing2
Tishka17
Чо
Tishka17
Текущая директория одна на процесс
Tishka17
Если ты не про теущую директорию, то объясни о чем ты
Кіт ✙
шо тут блять я не так обьяснил
Tishka17
чем тебе динамический импорт не нравится?
Тем, что его неосторожное применение приводит к потере контроля над кодом.
Кіт ✙
одна программа импортирует другую в другой директории
Кіт ✙
так? Так
Tishka17
Это одна программа
Tishka17
Но разные модули
Tishka17
Один процесс в ОС
Кіт ✙
так блять
Кіт ✙
а теперь давай на питоньем (человеческом)
Tishka17
Окей. У тебя есть программа. Она импортирует модуль
Tishka17
Нкт
Tishka17
Программа не может импортировать программу
Кіт ✙
ну ладно
Tishka17
Она может её или запустить (например через subprocess) или импортировать как модуль
Tishka17
Если импорт, то у тебя одна программа
Tishka17
Ну раз одна программа, то одна рабочая директория
Кіт ✙
ага, понял
Tishka17
И рабочая директория никак не связана с тем, где лежат сорцы
Кіт ✙
окей, тогда нужно ещё кое-что уточнить
Кіт ✙
модуль импортирует ещё один модуль, который лежит в определенной директории
Кіт ✙
и кто-то из той директории импортирует этот самый модуль
Кіт ✙
произойдет успешный импорт или ошибка?
Tishka17
Эм
Tishka17
Модули в пределах процесса кэшируются и загружаются фактически один раз. Что происходит в другом процессе пофиг, они никак друг другу не мешают
Tishka17
Но если у тебя динамические импорты, могут быть особенности с кэшированием модулей
Кіт ✙
ладно, я уже понял, что динамические иморты - лафа
Tishka17
Лучше почитать в документации
maxlunar
просто не юзай __import__ для этого есть более гибкий importlib
maxlunar
ладно, я уже понял, что динамические иморты - лафа
у меня было костыльное решение для старого вкшного бота
maxlunar
через импортлиб
Кіт ✙
оно?
Tishka17
А можно не файлом?
Tishka17
Мне с его с телефона лень качать и искать чем открыть
maxlunar
оно?
код в 5 строк закидывать файлом, не делай так больше
Кіт ✙
щас буит
maxlunar
import importlib.util def load_module(module, path): spec = importlib.util.spec_from_file_location(module, path + module) foo = importlib.util.module_from_spec(spec) spec.loader.exec_module(foo) все что там было
Tishka17
Чёт сложно