duplicity.progress module

Functions to compute progress of compress & upload files The heuristics try to infer the ratio between the amount of data collected by the deltas and the total size of the changing files. It also infers the compression and encryption ration of the raw deltas before sending them to the backend. With the inferred ratios, the heuristics estimate the percentage of completion and the time left to transfer all the (yet unknown) amount of data to send. This is a forecast based on gathered evidence.

class duplicity.progress.LogProgressThread[source]

Bases: threading.Thread

Background thread that reports progress to the log, every –progress-rate seconds

class duplicity.progress.ProgressTracker[source]

Annotate the number of bytes that have been added/changed since last time this function was called. bytecount param will show the number of bytes since the start of the current volume and for the current volume


Returns true if the progress computation is on and duplicity has not yet started the first dry-run pass to collect some information


Aproximative and evolving method of computing the progress of upload

set_evidence(stats, is_full)[source]

Stores the collected statistics from a first-pass dry-run, to use this information later so as to estimate progress


Snapshots the current progress status for each volume into the disk cache If backup is interrupted, next restart will deserialize the data and try start progress from the snapshot


Elapsed seconds since the first call to log_upload_progress method

class duplicity.progress.Snapshot(iterable=[], maxlen=10)[source]

Bases: collections.deque

A convenience class for storing snapshots in a space/timing efficient manner Stores up to 10 consecutive progress snapshots, one for each volume


Serializes object to cache

push_snapshot(volume, snapshot_data)[source]
static unmarshall()[source]

De-serializes cached data it if present

duplicity.progress.report_transfer(bytecount, totalbytes)[source]

Method to call tracker.annotate_written_bytes from outside the class, and to offer the “function(long, long)” signature which is handy to pass as callback