Комментарии 12
В принципе, идея хороша. Но API стоило слизать с pathlib
. Парсить слэши в рантайме такое себе -- бьёт по производительности на пустом месте.
В коде ожидал увидеть вынос по максимуму кода на этап инициализации, однако нашёл дурную тучу кода, исполняемого в рантайме. Оно, конечно, поправимо, но сейчас бьёт по производительности на пустом месте.
Короче, идея вообще хороша, реализация неоптимальна. Цена на одно обращение не очень большая, но есть один нюанс.
А, ну да, `syncio`. Библиотека синхронная.
Автор оригинала без малого крут, другая его терминальная библиотека "взлетела до небес". Я ему issues тоже открывал.
pyfs самую малость совсем ни разу не альтернатива pathlib: у них разные задачи. главная фишка pyfs в абстракции доступа к куче fs-образных сервисов: от локальных папок и memfs до s3.
самый большой минус библиотеки в некоторой неконсистентности, связанной с ограничениями сервисов. например, в s3 отсутствуют каталоги и файлы, есть только объекты, у которых части имени могут разделяться слешем. из-за этого можно очень долго просидеть, пытаясь понять, почему после создания папки не удаётся проверить её существование, при этом в memfs и ftp всё хорошо.
к сожалению, живых альтернаив я пока не встречал
Я что-то не увидел S3 среди built in filesystems. Или где это в документации?
Она не встроенная, но это официальная обёртка на основе botocore. https://github.com/PyFilesystem/s3fs
Проект выглядит мертвым. Последний коммит 2 года назад.
Не то, чтобы совсем мёртвый. Это просто адаптер, который работает и достаточно неплохо. API botocore за это время не сильно изменился, а большего и не нужно. Всё равно других подобных библиотечек для python, где можно было бы сменить способ доступа одной строкой, по типу FlySystem (https://flysystem.thephpleague.com/v2/docs/), я не встречал.
А сколько джоулей будет стоит такой поиск в сравнении C/С++ реализацией?
PyFilesystem — мощная альтернатива pathlib