Skip to main content
See Work with sandbox files for upload and download scenarios, and Customize the SDK for transfer implementations. Import file types from contree_sdk.files. Public file-transfer contracts and client-backed implementations.

class AsyncClientFileTransfer

File transfer using a caller-owned asynchronous contree-client.

Attributes

Callable[[TransferProgress], None] | None
Callable[[TransferProgress], None] | None

Methods

upload()

required
FileSpec

read_file()

required
required
bytes

iter_file()

Yield file content. Override this buffered fallback for streaming backends.
required
required
AsyncGenerator[bytes, None]
File content chunks. Close the generator if iteration stops early.

download_file()

Atomically save streamed content.
required
required
required
int
The number of downloaded bytes.

prepare_files()

required
dict[str, FileSpec] | None

read_stdin()

required
str | bytes

class AsyncFileTransfer

Native async counterpart of SyncFileTransfer. prepare_files limits uploads to max_concurrency workers. It cancels and joins sibling uploads when one fails. Custom backends can replace batching.

Attributes

Callable[[TransferProgress], None] | None
Callable[[TransferProgress], None] | None

Methods

upload()

required
FileSpec

read_file()

required
required
bytes

prepare_files()

required
dict[str, FileSpec] | None

iter_file()

Yield file content. Override this buffered fallback for streaming backends.
required
required
AsyncGenerator[bytes, None]
File content chunks. Close the generator if iteration stops early.

download_file()

Atomically save streamed content.
required
required
required
int
The number of downloaded bytes.

read_stdin()

required
str | bytes

class AsyncReadable

Methods

read()

default:"-1"
TypeVar(DataT_co, str, bytes, covariant=True)

class ClientFileTransfer

File transfer using a caller-owned synchronous contree-client.

Attributes

Callable[[TransferProgress], None] | None
Callable[[TransferProgress], None] | None

Methods

upload()

required
FileSpec

read_file()

required
required
bytes

iter_file()

Yield file content. Override this buffered fallback for streaming backends.
required
required
Generator[bytes, None, None]
File content chunks. Close the generator if iteration stops early.

download_file()

Atomically save streamed content.
required
required
required
int
The number of downloaded bytes.

prepare_files()

required
dict[str, FileSpec] | None

read_stdin()

required
str | bytes

class Readable

Methods

read()

default:"-1"
TypeVar(DataT_co, str, bytes, covariant=True)

class StagedFile

An uploaded file and its destination metadata, detached from a local source.

Attributes

str
str
int | None
int | None
int | None

Methods

from_spec()

Copy a transport attachment, preserving omitted permission fields.
required
required
StagedFile
StagedFileA detached attachment with an octal mode converted to an integer.
ValueError – The upload UUID is missing or the mode is not octal.

as_spec()

Create a transport attachment without reading or uploading its source.
FileSpec
A new FileSpec with the recorded metadata.

class SyncFileTransfer

Replace upload, download, or stdin handling without replacing a session. Returned FileSpec values identify uploads on the same server as the session. Input streams belong to the caller and must not be closed by this component.

Attributes

Callable[[TransferProgress], None] | None
Callable[[TransferProgress], None] | None

Methods

upload()

required
FileSpec

read_file()

required
required
bytes

prepare_files()

required
dict[str, FileSpec] | None

iter_file()

Yield file content. Override this buffered fallback for streaming backends.
required
required
Generator[bytes, None, None]
File content chunks. Close the generator if iteration stops early.

download_file()

Atomically save streamed content.
required
required
required
int
The number of downloaded bytes.

read_stdin()

required
str | bytes

class TransferProgress

Completed upload size or cumulative downloaded bytes for one remote path.

Attributes

int | None
Literal['upload', 'download']
Literal[‘upload’, ‘download’]
str
int

class UploadFileSpec

Attributes

int
int
PurePosixPath | str | None
int
str | Path | bytes | UploadedFile
str | Path | bytes | UploadedFile

Methods

prepare_files()

required
default:"'/'"
list[UploadFileSpec]

class UploadedFile

Attributes

str
str

prepare_file_tree()

Expand directory contents into regular files in stable relative-path order. Patterns match POSIX relative paths, or basenames when they contain no slash. Excluded directories are pruned. Symlinks and special files raise ValueError. Empty directories cannot be represented by spawn attachments and are omitted. mode=None preserves permission bits; ownership defaults to uid=gid=0.
required
default:"'/'"
default:"()"
default:"0"
default:"0"
default:"None"
list[UploadFileSpec]
list[UploadFileSpec]Prepared attachments in relative-path order.
ValueError – The source is not a directory, or an included entry is not a regular file or directory.

write_download()

Write streamed bytes atomically; preserve the destination on failure.
required
required
default:"''"
default:"None"
int
The number of downloaded bytes.

write_download_async()

Write streamed bytes atomically, joining local writes before cancellation escapes.
required
required
default:"''"
default:"None"
int
The number of downloaded bytes.