Skip to main content

Assorted tar related things, including a fast tar-based copy.

Project description

Assorted tar related things, including a fast tar-based copy.

Latest release 20240318: Initial PyPI release with nice traced_cpdir() function.

My most heavily used use for this is my cpdir script which does a high performance directory copy by piping 2 tars together. It runs this:

from cs.tarutils import traced_cpdir
sys.exit(traced_cpdir(*sys.argv[1:]))

Function tar(*srcpaths: List[str], chdirpath='.', output, tar_exe='tar', bcount=2048)

Tar up the contents of srcpaths to output. Return the Popen object for the tar command.

Parameters:

  • srcpaths: source filesystem paths
  • chdirpath: optional directory to which to chdir before accessing srcpaths
  • tar_exe: optional tar executable, default from TAR_EXE: tar
  • bcount: blocking factor in 512 byte unites, default from DEFAULT_BCOUNT: 2048

Function traced_cpdir(srcdirpath, dstdirpath, *, label=None, tar_exe='tar', bcount=2048, upd)

Copy a directory to a new place using piped tars with progress reporting. Return 0 if both tars succeed, nonzero otherwise.

Parameters:

  • srcdirpath: the source directory filesystem path
  • dstdirpath: the destination directory filesystem path, which must not already exist
  • label: optional label for the progress bar
  • tar_exe: optional tar executable, default from TAR_EXE: tar
  • bcount: blocking factor in 512 byte unites, default from DEFAULT_BCOUNT: 2048

Function traced_untar(tarfd, *, chdirpath='.', label=None, tar_exe='tar', bcount=2048, total=None, _stat_fd=False, upd)

Read tar data from tarfd and extract. Return the tar exit code.

Parameters:

  • tarfd: the source tar data, suitable for subprocess.Popen's stdin parameter
  • chdirpath: optional directory to which to chdir before accessing srcpaths
  • label: optional label for the progress bar
  • tar_exe: optional tar executable, default from TAR_EXE: tar
  • bcount: blocking factor in 512 byte unites, default from DEFAULT_BCOUNT: 2048

Release Log

Release 20240318: Initial PyPI release with nice traced_cpdir() function.

Project details


Download files

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

Source Distribution

cs.tarutils-20240318.tar.gz (5.2 kB view hashes)

Uploaded Source

Built Distribution

cs.tarutils-20240318-py3-none-any.whl (5.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page