Рустам
Есть девопсы? На работе много пишете на питоне?
Unknown
Уже делается, но темп один.
import tempfile, дальше в гугл
Yurii
Жанго эксперты есть тут?
Yurii
Зачем при импорте в начале точки в django любят ставить?
Egorka
Здравствуйте. Есть такая проблема: существует последовательность скриптов - пайплайн, которые работают с файлами в некоторой папке. С помощью фласка пользователь загружает на сервер файл, подает его на вход пайплайна, пайплан переносит файл в свою папку, разбивает его, проводит некоторые операции и выдает производный файл, который пользователем скачивается через браузер. Подводный камень тут следующий: если пользователь попытается загрузить на сервер и в пайплан еще один файл (например, в новой вкладке браузера), то пайплайн поместит его в ту же папку, в которой происходит работа над предыдущим файлом (и производными этого файла). Разумеется, это полностью слломает весь ход работы. Скажите пожалуйста, что можно почитать, чтобы найти способ решения этой проблемы?
Добавь в созданную папку уникальность, из разряда юникс времени
/
как называть переменные?
Anonymous
Ласково
Slam!
а то обидятся
c
+
пссс, не хочешь сделать out переменные в питоне
Slam!
пишу только декораторы
c
бум
c
пишу только декораторы
сделаем декоратор на out
Enot
Есть функция в модуле, можно ее изменить, чтобы выполнялась только ее часть? Типо пропатчить на время или что то
Nikolay
да, return по условию; или yield
Yurii
относительный импорт?
import a Не относительный?
Slam!
бум
че это за говно
Nikolay
import a Не относительный?
нет, не относительный; обычный импорт
c
че это за говно
int по ссылке
Yurii
нет, не относительный; обычный импорт
Ну если a в той же директории.
Slam!
int по ссылке
ну понятно
Anonymous
Инт и так по ссылке передается всегда
Anonymous
Просто он имьютабл
Anonymous
В питоне кол бай шеринг
c
Просто он имьютабл
ну менять его значение ты все равно можешь
Yurii
нет, не относительный; обычный импорт
Просто в чем смысл from . import a А не import a
c
Инт и так по ссылке передается всегда
один хуй семнатика такова, что типа копия делается
/
а есть какая нибудь разница в скорости между: print(str(int(input()))[-1]) и: print(int(input())%10)
Nikolay
дзен питона же
Yurii
Явное лучше неявного
Впринципе это читабельность якобы в данном случае?
Yurii
И если писать import a ничего криминального нет
Ivan
если будет какой-нибудь ещё другой модуль с именем a, то может он загрузится
Ivan
вообще from . import a это замена для import project_name.a as a, а не для import a
Ivan
https://www.python.org/dev/peps/pep-0328/
Андрей
Зачем при импорте в начале точки в django любят ставить?
Жанго тут ни при чем Это релатив импорт
Enot
зачем? с какой целью?
Метод сохраняет только файл, а я хочу иногда сохранять только в память Думаю сделать через контекстный менеджер (менять на время функцию)
Alex
что за метод?
Alex
Жанго тут ни при чем Это релатив импорт
лец ми спик фром май харт ин инглиш да?
Slam!
asyncpg что происходит, когда дергается .execute()? по идее, создается транзакция, делается запрос, после чего коммит?
Enot
что за метод?
просто метод, внутри проставляются какие-то флаги классу, затем сохраняет какой-то результат в файл
Enot
перепиши
либа левая
Alex
либа левая
так что за либа то?
Alex
какие параметры этот метод принимает?
Alex
?
с какого перепугу .execute() будет тебе создавать транзакцию и что-то там коммитить?
Enot
так что за либа то?
simplekml, метод save
Alex
а что он делает?
выполняет запрос
Slam!
он просто кладет в выделенную постгресом память запрос, но не дает команды выполнения?
Slam!
ладно
Alex
он отсылает запрос на сервер, постгрес его выполняет, отсылает результат
Alex
с участием ивент лупа
Slam!
он отсылает запрос на сервер, постгрес его выполняет, отсылает результат
если у меня запрос, засунутый в execute, что-то меняет в базе, то куда коммит?
Alex
Оно надо?
ну бывает удобно чо. если проект переименуешь не надо все импорты перехреначивать.
Alex
если у меня запрос, засунутый в execute, что-то меняет в базе, то куда коммит?
никуда он не коммитит (если у тебя база конечно не в режиме автокоммита)
Андрей
Оно надо?
Не везде
Alex
simplekml, метод save
метод save() чего именно?
Slam!
никуда он не коммитит (если у тебя база конечно не в режиме автокоммита)
то есть, транзакция нужна для того, чтобы была возможность сделать ролбек в контексте данной транзакции, а если экзекутить без коммитов, то ролбек будет выполнен до начала первого экзекута?
Yurii
ну бывает удобно чо. если проект переименуешь не надо все импорты перехреначивать.
Так ничего ж не поменяется если было from . import a а стало import a
Alex
если только в .execute() COMMIT не засунуть
угу, но для этого есть встроенные механизмы.
Alex
короче, во время первого запроса в рамках транзакции .execute() пошлет BEGIN в базу, COMMT ты должен сделать явно
Slam!
я не могу понять, когда мне нужно юзать транзакции, а когда - достаточно экзекута с коммитом
Ivan
что это
Alex
все, понял
https://magicstack.github.io/asyncpg/current/faq.html#why-can-t-i-use-a-cursor-outside-of-a-transaction