프로젝트 소개

smart_open은 Python 3용 라이브러리로, Amazon S3, Google Cloud Storage, Azure Blob Storage, HDFS, WebHDFS, HTTP/HTTPS, SFTP/SCP/SSH, 그리고 로컬 파일시스템을 포함한 다양한 스토리지 시스템 간에 매우 큰 파일을 스트리밍하기 위한 통합된 Pythonic API를 제공합니다. 이 라이브러리는 Python의 내장 open() 함수의 드롭인 대체품 역할을 하며, 완전한 호환성을 유지하면서 원격 URI 지원과 gzip, bzip2, LZ4, XZ, Zstandard 형식의 실시간 압축/해제 기능을 추가합니다. 라이브러리는 각 백엔드의 인증 및 전송 세부 사항을 처리하며, 사용자는 transport_params를 통해 사용자 정의 클라이언트(예: boto3, google-cloud-storage, azure-storage-blob)를 전달하여 고급 구성이 가능합니다. 또한 컨텍스트 관리자, 시킹(seeking), 표준 IOBase 연산을 지원합니다. 압축은 기본적으로 파일 확장자에서 추론되지만, 재정의하거나 비활성화할 수 있습니다. 추가 유틸리티로는 smart_open.s3.iter_bucket()을 통한 S3 버킷 콘텐츠의 병렬 반복이 포함됩니다. 설치는 기본적으로 최소화되어 있으며, 각 스토리지 백엔드 및 압축 형식에 대한 선택적 종속성은 extras를 통해 설치할 수 있습니다 (예: pip install 'smart_open[s3,gcs,azure,http,webhdfs,ssh,zst,lz4]'). 이 프로젝트는 잘 테스트되었고, MIT 라이선스이며, 적극적으로 유지 관리됩니다.