Skip to main content

Here are some decorators for reading and writing to compressed archives.

Installation

easy_install -U archiveIO

Usage

import archiveIO
import os
from six import BytesIO

# Define a function that generates archive contents
@archiveIO.save
def save(targetPath):
    open(targetPath, 'wt').write('xxx')
# Define a function that processes archive contents
@archiveIO.load
def load(sourcePath):
    return open(sourcePath, 'rt').read()

# Save archives
save('sample.txt')
save('sample.txt.zip')
save('sample.txt.tar.gz')
save('sample.txt.tar.bz2')
save('sample.txt.tar')
# Load archives
assert 'xxx' == load('sample.txt')
assert 'xxx' == load('sample.txt.zip')
assert 'xxx' == load('sample.txt.tar.gz')
assert 'xxx' == load('sample.txt.tar.bz2')
assert 'xxx' == load('sample.txt.tar')

# Create an archive containing two files
@archiveIO.save
def save(targetPath):
    open(targetPath + '.txt', 'wt')
    open(targetPath + '.csv', 'wt')
targetPath = 'sample.zip'
save(targetPath)
# Target CSV files before TXT files
@archiveIO.load(extensions=['.csv', '.txt'])
def load(sourcePath):
    return os.path.basename(sourcePath)
assert 'sample.csv' == load(targetPath)

# Use MyException instead of IOError
class MyException(Exception):
    pass
@archiveIO.load(CustomException=MyException)
def load(sourcePath):
    return sourcePath
try:
    load('xxx.tar.gz')
except MyException, error:
    print error

# Compress directly into a string buffer
archive = archiveIO.Archive(BytesIO(), '.tar.gz')
archive.save([
    'sample.txt',
    'sample.txt.zip',
])
# Uncompress into a temporary folder
with archiveIO.TemporaryFolder() as temporaryFolder:
    for filePath in archive.load(temporaryFolder):
        print filePath

0.5.0

  • Fixed Python 3 support

0.4.4

  • Added option to target file extensions for uncompressed files

0.4.3

  • Added CustomException coverage if opening archive fails

0.4.2

  • Added CustomException option to load() decorator

0.4.1

  • Excluded extraneous ‘.’ when saving zip archives

0.4.0

  • Added support for file-like objects when saving or loading archives

  • Added support for folderPaths when saving archives

  • Increased test coverage to 100%

0.3.0

  • Added Archive class

0.2.0

  • Ported code from zip_store

  • Added support for .tar.gz .tar.bz2 .tar

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

archiveIO-0.5.1.tar.gz (5.8 kB view details)

Uploaded Source

File details

Details for the file archiveIO-0.5.1.tar.gz.

File metadata

  • Download URL: archiveIO-0.5.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for archiveIO-0.5.1.tar.gz
Algorithm Hash digest
SHA256 7095e41c2d60d77a8502e0248ed9986104958609d1c2831c391223bb4a32d14f
MD5 344b72b7df9d9a06d56818110fd4687e
BLAKE2b-256 1773363d0b14fc52ebdbe0850f5f617af058920cbecad2ea05f7c9def29d8ce3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.5.1 This release

1 file

0.4.4

1 file

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4

1 file

0.3

1 file

0.2

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page