Skip to content

A multi destination copy tool / library with source and destination verification using xxHash.

License

Notifications You must be signed in to change notification settings

ottomatic-io/ocopy

Folders and files

NameName
Last commit message
Last commit date
Nov 5, 2019
Nov 3, 2019
Sep 1, 2020
Dec 15, 2019
Oct 16, 2019
Nov 7, 2019
Oct 14, 2019
Dec 15, 2019
Dec 15, 2019
Nov 5, 2019
Oct 14, 2019
Oct 14, 2019
Dec 15, 2019

Repository files navigation

o/COPY

PyPI version PyPI version GitHub license Code style: black codecov

A multi destination copy tool / library with source and destination verification using xxHash.

Installation / Update

With pip

If you have Python 3 installed you can just use pip:

pip3 install -U ocopy

Usage

CLI

cli

Python

import tempfile
from pathlib import Path
from time import sleep

from ocopy.copy import CopyJob


def simple_example():
    # For the sake of this example we will create temporary directory.
    # You will not be doing this in your code.
    with tempfile.TemporaryDirectory() as tmp:
        tmp = Path(tmp)

        # Define source and destination directories
        source = tmp / "source"
        destinations = [tmp / "destination_1", tmp / "destination_2", tmp / "destination_3"]

        # Create some test content
        source.mkdir(parents=True, exist_ok=True)
        (source / "testfile").write_text("Some test content")

        # Create the copy job and wait until it is finished
        job = CopyJob(source, destinations, overwrite=True, verify=True)
        while job.finished is not True:
            sleep(0.1)

        # Print errors
        for error in job.errors:
            print(f"Failed to copy {error.source.name}:\n{error.error_message}")

        # Show content of the mhl file
        mhl_file_content = list(destinations[0].glob("**/*.mhl"))[0].read_text()
        print(mhl_file_content)


if __name__ == "__main__":
    simple_example()

About

A multi destination copy tool / library with source and destination verification using xxHash.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages