Size: a a a

2021 February 23

p

pragus in PiterPy Meetup
Eugene
Многие библиотеки используют операцию Path.rename/os.replace, когда делают атомарные операции с файлами, типа из /tmp перенести в dst папку. Я тоже так делал пока код не сломался в случае с использованием GlusterFS и /tmp папкой на локальной файловой системе. И вот сейчас снова наткнулся на эту проблему в одной из библиотек. Тут помогает обычная процедура move file (настоящее копирование файла), у себя я так и сделал и всё стало работать, но люди в библиотеках продолжают делать replace, который не работает с cross-device.
Давай переведу: "люди не знают что перемещение работает только в пределах блочного устройства и ты хочешь тесткейс для отлова незнаек" :)
источник

E

Eugene in PiterPy Meetup
pragus
Давай переведу: "люди не знают что перемещение работает только в пределах блочного устройства и ты хочешь тесткейс для отлова незнаек" :)
Тест-кейс был бы полезен для отлова ошибок. Люди могут о таких вещах не задумываться, особенно когда пишут на скриптовом языке высокого уровня. Это вполне простительно. Было бы неплохо осветить этот момент хотя бы в документации. А вообще под капотом можно было бы определять, то же это устройство или не то. Интересно, функция shutil.move всегда копирует файлы или может делать rename/replace? Потому что она нормально работает.
источник

E

Eugene in PiterPy Meetup
Eugene
Тест-кейс был бы полезен для отлова ошибок. Люди могут о таких вещах не задумываться, особенно когда пишут на скриптовом языке высокого уровня. Это вполне простительно. Было бы неплохо осветить этот момент хотя бы в документации. А вообще под капотом можно было бы определять, то же это устройство или не то. Интересно, функция shutil.move всегда копирует файлы или может делать rename/replace? Потому что она нормально работает.
shutil.move всё правильно делает

If the destination is an existing directory, then src is moved inside that directory. If the destination already exists but is not a directory, it may be overwritten depending on os.rename() semantics.

If the destination is on the current filesystem, then os.rename() is used. Otherwise, src is copied to dst using copy_function and then removed. In case of symlinks, a new symlink pointing to the target of src will be created in or as dst and src will be removed.
источник

p

pragus in PiterPy Meetup
Eugene
shutil.move всё правильно делает

If the destination is an existing directory, then src is moved inside that directory. If the destination already exists but is not a directory, it may be overwritten depending on os.rename() semantics.

If the destination is on the current filesystem, then os.rename() is used. Otherwise, src is copied to dst using copy_function and then removed. In case of symlinks, a new symlink pointing to the target of src will be created in or as dst and src will be removed.
Ну так логично. Если тебе надо что-то более сложное, ты используешь shutil.move
источник

p

pragus in PiterPy Meetup
источник

Б

Боброний in PiterPy Meetup
Опередил!
источник

Б

Боброний in PiterPy Meetup
Но он был самым первым
источник

MK

Maxim Koltsov in PiterPy Meetup
а? чё?
источник

Б

Боброний in PiterPy Meetup
Maxim Koltsov
а? чё?
В очередной раз в чат закинули mypyc
источник

MK

Maxim Koltsov in PiterPy Meetup
бывает
источник
2021 February 25

DB

Dima Boger in PiterPy Meetup
источник

MK

Maxim Koltsov in PiterPy Meetup
зачпм...
источник

Б

Боброний in PiterPy Meetup
Ураааа
источник

Б

Боброний in PiterPy Meetup
Больше параметризации дженериков
источник

Б

Боброний in PiterPy Meetup
**{a=3, b=4}
источник

SS

Sergey Sokolov in PiterPy Meetup
источник

N

Nikita in PiterPy Meetup
источник

AK

Alex 🌼 Karantinsky... in PiterPy Meetup
Ребят, подскажите язык для не новичков. Чтобы с приятным синтаксисом, и развивался в сторону ускорения и удобства,  а не хер пойми чего?
источник

DB

Dima Boger in PiterPy Meetup
Alex 🌼 Karantinsky
Ребят, подскажите язык для не новичков. Чтобы с приятным синтаксисом, и развивался в сторону ускорения и удобства,  а не хер пойми чего?
:trollface:
источник

AK

Alex 🌼 Karantinsky... in PiterPy Meetup
Pypy не предлагать, он не справляется с memory pressure
источник