Об этом проекте

smart_open — это библиотека для Python 3, предоставляющая единый Pythonic API для потоковой передачи очень больших файлов в разнообразные системы хранения и обратно, включая Amazon S3, Google Cloud Storage, Azure Blob Storage, HDFS, WebHDFS, HTTP/HTTPS, SFTP/SCP/SSH и локальную файловую систему. Она служит прямой заменой встроенной функции Python open(), сохраняя полную совместимость и добавляя поддержку удалённых URI, а также сжатия и распаковки «на лету» для таких форматов, как gzip, bzip2, LZ4, XZ и Zstandard. Библиотека берёт на себя детали аутентификации и транспорта для каждого бэкенда, позволяя пользователям передавать собственные клиенты (например, boto3, google-cloud-storage, azure-storage-blob) через transport_params для расширенной настройки. Поддерживаются менеджеры контекста, позиционирование (seek) и стандартные операции IOBase. По умолчанию тип сжатия определяется по расширению файла, но его можно переопределить или отключить. Дополнительные утилиты включают параллельную итерацию по содержимому бакетов S3 с помощью smart_open.s3.iter_bucket(). Установка по умолчанию минимальна; необязательные зависимости для каждого бэкенда хранения и формата сжатия можно установить через extras (например, pip install 'smart_open[s3,gcs,azure,http,webhdfs,ssh,zst,lz4]'). Проект хорошо протестирован, распространяется под лицензией MIT и активно поддерживается.