Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

UC2 for Python

Read and create UltraCompressor II archives using the native UC2 library. The package also includes the UC2 command-line program for listing, extraction, archive creation, and stream ingestion. Wheels contain the native code; no separate UC2 install or compiler is needed when a wheel is available.

This is an alpha release. It supports the implemented legacy Huffman methods, master dictionaries, directories, stored versions, and UC2 v3 rANS entries. Turbo/method 80 is supported for reading. Multi-volume sets require reassembly. Use UC2File for reading and UC2Writer for creation.

Install and read

python -m pip install --pre uc2
uc2 -l archive.uc2
python -m uc2 -t archive.uc2

Wheels support CPython 3.10-3.14 on Linux x86-64 (glibc), Windows x86-64, and Intel/Apple Silicon macOS.

from uc2 import UC2File

with UC2File("archive.uc2") as archive:
    for info in archive.infolist():
        print(info.filename, info.file_size, info.version)
    contents = archive.read("notes.txt")
    archive.verify()
    archive.extractall("restored")

The constructor accepts a path or a seekable binary file, including BytesIO. Caller-owned files stay open; their seek position changes. Keep the source unchanged while the archive is open. Each thread should use its own UC2File.

infolist() and namelist() return the newest version of each path by default. Use infolist(all_versions=True) to include older entries. A literal semicolon in a filename remains part of the name:

with UC2File("archive.uc2") as archive:
    newest = archive.read("notes.txt")
    older = archive.read("notes.txt", version=1)
    literal_name = archive.read("notes.txt;1")

UC2Info records the name, uncompressed and compressed sizes, DOS timestamp (a naive datetime, or None if invalid), attributes, method, version, and is_dir(). The dos_time field retains the original 32-bit timestamp, including invalid date encodings. Metadata objects can be passed directly to read, extract, and copy_to. They belong to the archive that produced them.

Preserve a collection

uc2-preserve old-archives -o inventory
uc2-preserve old-archives -o migrated --format zip
uc2-preserve old-archives -o migrated-tar --format tar

Each command requires a new output directory. Inputs can be individual archives or directories. Every stored version is decoded and checked, and manifests record original paths, raw timestamps, attributes and SHA-256 hashes. Exports use separate numbered paths for each entry, so old versions and case variants cannot overwrite each other. Generated ZIP/tar files are reopened and their contents verified. Failed entries are recorded and omitted from exports; a partial batch returns exit status 1. Sources are read-only.

The Python API is uc2.preserve.preserve(inputs, output, format="zip"). See the preservation guide for limits, manifest fields and metadata conversion details. The browser reader handles individual archives without a Python installation.

Limits and extraction

Defaults are 100,000 entries, 64 MiB of decoder allocations, 64 MiB per read, 1 GiB per streamed file, and 1 GiB total per extractall or verify call. Constructor keywords are max_entries, max_decoder_memory, max_read_size, max_extract_size, and max_total_size. They must be positive integers. The decoder limit excludes Python metadata and caller-owned buffers. Archive offsets and this reader are limited to 32 bits. These limits are not a CPU-time sandbox for hostile input.

copy_to(member, binary_file) decodes without collecting the file in memory. Its output may be partial if decoding or writing fails. extract and extractall instead stage each file and install it after its UC2 checksum passes. Existing files are preserved unless overwrite=True is supplied. Earlier successfully extracted files remain if a later member fails.

Extraction rejects absolute paths, traversal, reserved Windows names, control characters, ambiguous case-folded names, and links below the destination. It uses file-descriptor-relative operations without following links on POSIX. Windows checks links and reparse points; use a destination that other processes cannot modify during extraction. The explicitly chosen destination itself may be a symlink. POSIX files use mode 0600 and directories use 0755, both masked by the process umask. Archived permissions and timestamps are exposed as metadata but not applied.

Errors include BadArchiveError, ResourceLimitError, UnsafePathError, and ordinary Python I/O exceptions. Verification uses the archive's legacy checksums, which are not cryptographic authentication. A missing entry or version raises KeyError.

Create archives

from io import BytesIO
from uc2 import UC2Writer

with UC2Writer("backup.uc2", level=4) as archive:
    archive.write("project", arcname="source")  # recursive directory tree
    archive.mkdir("empty-directory")
    archive.writestr("notes.txt", "Saved from Python\n".encode("utf-8"))
    archive.write_stream("data.bin", BytesIO(b"streamed bytes"))

The destination is a filesystem path. A successful close() replaces it using an exclusively created sibling temporary file and os.replace. An exception, abort(), or a failed add/close leaves an existing destination intact. Any failed add aborts the writer; start a new one to retry. Destruction discards uncommitted work. The containing directory must exist and remain under the caller's control. Atomic replacement is not a guarantee of survival after a power failure. Replacement creates a new file with temporary-file permissions (normally 0600 on POSIX), without preserving destination permissions.

write(path, arcname=None) adds a regular file or recursively adds a directory. The default archive name is the input's basename. Symlinks, reparse points, and special files are rejected. Keep the source tree unchanged while reading. mkdir(name) creates missing parents; repeated directories retain their first metadata. writestr(name, data) accepts bytes, bytearray, or memoryview; encode text explicitly. write_stream(name, source, size=None) consumes read(n) through EOF without seeking and leaves the input open. A supplied size must match exactly; detecting excess input can consume one extra byte.

Inputs spool to anonymous temporary files as they are added. Compression runs at close, using CDC-selected custom master dictionaries. Payload buffers have fixed sizes; metadata grows with entries and chunks. Temporary disk space covers the uncompressed inputs and completed archive, plus the destination's sibling temporary file during the final copy. Duplicate file paths store versions: the last added version is newest. Directories cannot conflict with files. Independent writer objects may run separately; one object rejects concurrent or reentrant use.

Writer limits and metadata:

  • level=4 by default; 2-5 use legacy Huffman and 6-9 use v3 rANS.
  • max_entries=100_000, configurable from 1 through 1,000,000, includes automatic parent directories. max_total_size=0xFFFFFFFF bounds all input bytes combined and may be reduced. Each file and the completed archive also fit 32 bits.
  • The central directory is limited to 64 MiB and the CDC index to 1,048,576 chunks. Directories may nest 64 levels deep. These are format/API limits, not CPU limits.
  • Archive paths use /. Components must be representable in CP850, fit 255 CP850 bytes and 299 UTF-8 bytes, and contain no traversal, separators, colon, or control characters. Unsupported Unicode raises an error; names are never shortened. Some legal archive names still require renaming to extract on Windows; the reader's extraction checks apply unchanged.
  • mkdir, writestr, and write_stream accept date_time (a naive datetime in 1980-2107, or None) and DOS attributes (R/H/S/A bits). Timestamps have two-second resolution. write takes filesystem modification times; values outside that range become unspecified. It stores ordinary file/directory attributes, not Unix permissions.

After successful close, writer.stats reports file, directory and master counts and archive size. The C interface is documented in uc2_writer.h and the library guide.

Read-only Linux mount

python -m pip install --pre 'uc2[mount]'
mkdir archived
uc2-mount archive.uc2 archived --cache-mib 512

The mount runs in the foreground. Use another terminal to browse archived/files and archived/versions/1, then unmount with fusermount -u archived. Linux libfuse2 and /dev/fuse are required. Files decode on first access into a checksum-verified disk cache; an entry larger than its budget fails with EFBIG. The default cache holds up to 512 MiB and 128 files. Decoder allocations are limited to 64 MiB and released after every decode. Python metadata is outside that budget and has separate entry and node limits. See the mount documentation for options, stored versions, and error behavior.

Build from source

Requires Python 3.10+, CMake, and a C99 compiler. The build backend obtains CMake when necessary.

python -m pip install .
python -m build

Source, releases, and the project roadmap are at github.com/evvaletov/uc2.

The distribution contains GPL-3.0-or-later and LGPL-3.0-only code. Independently written Python integration code also has a BSD-2-Clause option. This does not change the licenses of the bundled core or third-party code. License texts, credits, and the per-file audit are included in the distribution.

Incremental directory versions are available through uc2 snapshot in the Python package, with shared SHA-256-addressed UC2 chunks and verified restores. See the snapshot guide.

Metadata

Release files for uc2 3.0.0a8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uc2 3.0.0a8
File Size Uploaded Provenance Actions
uc2-3.0.0a8.tar.gz 528.9 kB Without provenance Details for uc2-3.0.0a8.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for uc2 3.0.0a8
File Actions
uc2-3.0.0a8-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for uc2-3.0.0a8-cp314-cp314-win_amd64.whl
uc2-3.0.0a8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details for uc2-3.0.0a8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a8-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for uc2-3.0.0a8-cp314-cp314-macosx_11_0_arm64.whl
uc2-3.0.0a8-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details for uc2-3.0.0a8-cp314-cp314-macosx_10_15_x86_64.whl
uc2-3.0.0a8-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for uc2-3.0.0a8-cp313-cp313-win_amd64.whl
uc2-3.0.0a8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for uc2-3.0.0a8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a8-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for uc2-3.0.0a8-cp313-cp313-macosx_11_0_arm64.whl
uc2-3.0.0a8-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for uc2-3.0.0a8-cp313-cp313-macosx_10_13_x86_64.whl
uc2-3.0.0a8-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for uc2-3.0.0a8-cp312-cp312-win_amd64.whl
uc2-3.0.0a8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for uc2-3.0.0a8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a8-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for uc2-3.0.0a8-cp312-cp312-macosx_11_0_arm64.whl
uc2-3.0.0a8-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for uc2-3.0.0a8-cp312-cp312-macosx_10_13_x86_64.whl
uc2-3.0.0a8-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for uc2-3.0.0a8-cp311-cp311-win_amd64.whl
uc2-3.0.0a8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for uc2-3.0.0a8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a8-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for uc2-3.0.0a8-cp311-cp311-macosx_11_0_arm64.whl
uc2-3.0.0a8-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for uc2-3.0.0a8-cp311-cp311-macosx_10_9_x86_64.whl
uc2-3.0.0a8-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for uc2-3.0.0a8-cp310-cp310-win_amd64.whl
uc2-3.0.0a8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for uc2-3.0.0a8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a8-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for uc2-3.0.0a8-cp310-cp310-macosx_11_0_arm64.whl
uc2-3.0.0a8-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for uc2-3.0.0a8-cp310-cp310-macosx_10_9_x86_64.whl

Total release size: 5.3 MB

Release files / uc2-3.0.0a8.tar.gz

Download URL uc2-3.0.0a8.tar.gz
Size 528.9 kB
Tags Source
SHA-256 checksum
How to use checksums
df56d9474ccb0f08717a5e16d77d352dfdad582f0167c9dfceb2b7d79655dbb7
BLAKE2b-256 checksum
How to use checksums
64ac32d1d1fa932e6a9733858b631deb446bba834d3defb0234e9a14868c0951
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp314-cp314-win_amd64.whl

Download URL uc2-3.0.0a8-cp314-cp314-win_amd64.whl
Size 378.7 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7bf9a921cf3cfe516301f64329544a5506763fec3fa2637bcee21ea35109e362
BLAKE2b-256 checksum
How to use checksums
738336fe5fae8a147ce837c2265f56a7817dd477e243d4eb7317af3df74398b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 197.2 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9fc4f56db9e55503d7ed6ac00362063eb4f957c0d4ec375cdce2e444718ef6fb
BLAKE2b-256 checksum
How to use checksums
2b2a7aa7c7a6d372822fcd86824de42dbb12b88e63106dd72fd738c23ca5da0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp314-cp314-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a8-cp314-cp314-macosx_11_0_arm64.whl
Size 189.2 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
54cbce876fe3ab553df11c2a2bfb9e14f6da1b0ef5ce604a5e935cd076d6e879
BLAKE2b-256 checksum
How to use checksums
51a30f248ef42f34beaeecfad941064dd3cc71cabfba1cb524af8d36812cb2a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp314-cp314-macosx_10_15_x86_64.whl

Download URL uc2-3.0.0a8-cp314-cp314-macosx_10_15_x86_64.whl
Size 193.2 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
7476e770befac8b5c88a9517a58d72dc17b8ad4d5521249ee9c98875bcc64f64
BLAKE2b-256 checksum
How to use checksums
f8df9e60409ca4b57948eb97be143462df68e8939f9a20f527001c4b4bb09e12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp313-cp313-win_amd64.whl

Download URL uc2-3.0.0a8-cp313-cp313-win_amd64.whl
Size 369.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ddd82953f5404df57b5bb5a0fd6e10a76f1a1f13f2b36f3f34a997ef6db4123b
BLAKE2b-256 checksum
How to use checksums
c59f66546054770d5b0621da2268a18306f5ecdead0449ad8d5cc8b0925aa1dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 197.2 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9ca4d2793281468edb1cd68f753e4227f994afda20c158fd4fe541eb8f6fd886
BLAKE2b-256 checksum
How to use checksums
57dfaac603b71cc5c3228fb8702b27ab9b3de4821ba1ee44853007c38c98f900
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp313-cp313-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a8-cp313-cp313-macosx_11_0_arm64.whl
Size 189.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d2615959bb535e8a2ae56c019afbee57177659a89447be47bcb7e4c92123bbe6
BLAKE2b-256 checksum
How to use checksums
63eb3cad5fb698306e9206e7d3fc32de1f2975f014a0a6e81a55e85cb094a743
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp313-cp313-macosx_10_13_x86_64.whl

Download URL uc2-3.0.0a8-cp313-cp313-macosx_10_13_x86_64.whl
Size 192.8 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
be7f5094f4e60fe1065368d6a7e4dc1dedc0439a5c3d2a2a16f5bf082cf17370
BLAKE2b-256 checksum
How to use checksums
53a95c08058c67e24e550265ec4f70e8b94111a8dd0707d18397b75c8c62d39e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp312-cp312-win_amd64.whl

Download URL uc2-3.0.0a8-cp312-cp312-win_amd64.whl
Size 369.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7956f34bf72d4d1a609d81697e63bdf737fc846ef08db0b3e96a776c56e6b681
BLAKE2b-256 checksum
How to use checksums
2b8a0be517188a5f1de5f9484f5588603ebbf3950af498870f70701293c2459b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 197.2 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
91e8e479d50813eef91c470fb839bb8ba9c41ba525842e78cc9624adb8a46cbc
BLAKE2b-256 checksum
How to use checksums
b63010573a6d443ebc54aff62d0c6b1dad9487099dae43c18ef77642545d0071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp312-cp312-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a8-cp312-cp312-macosx_11_0_arm64.whl
Size 189.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b13a21037d7796e97ca3b2daa298b235c58b49063090524549d8b94739d3ecf6
BLAKE2b-256 checksum
How to use checksums
04599beec3a5ca0688939e5711646b45632e636f5f6108c79cfec79181bb70b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp312-cp312-macosx_10_13_x86_64.whl

Download URL uc2-3.0.0a8-cp312-cp312-macosx_10_13_x86_64.whl
Size 192.8 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
6dc14c5f643f6db610a1d77b534cf12dc9dbf5337144490297303762922b6868
BLAKE2b-256 checksum
How to use checksums
6d0b238babe92aead33a8b4d461e1e2d659aaf3b0f3656636ebe5e2f7ccf332f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp311-cp311-win_amd64.whl

Download URL uc2-3.0.0a8-cp311-cp311-win_amd64.whl
Size 369.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e43d86c5e99f55feceebb5c0a4fde9dd275e850027d6c5d88df03fadcec52a2c
BLAKE2b-256 checksum
How to use checksums
5a9381982921dc1be7c8b24da7e1574c37ba07973ef5d39a2a99a5f24ff0a688
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 197.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
125b5a2935d2e50a0e9b472ffb9d4c842cec5b246f993f9e69e3e72b779e28c4
BLAKE2b-256 checksum
How to use checksums
d7338a3df0bb70368671c77800bacabd594a8457b279e9a78c48111858ecf999
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp311-cp311-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a8-cp311-cp311-macosx_11_0_arm64.whl
Size 189.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f75c7c984ba5f8feeb9f736cef8a1b14fb1c9b4cda63c84afce219d35251d87c
BLAKE2b-256 checksum
How to use checksums
309eb2ffafd4ab8cf2978064eccb43e8626efee1b87afed8c5165e0d79e79a1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp311-cp311-macosx_10_9_x86_64.whl

Download URL uc2-3.0.0a8-cp311-cp311-macosx_10_9_x86_64.whl
Size 192.2 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
aee2d1ad9220f1ce47c9f10dbae6551b1f29e6f1eae8476bbca197071d967281
BLAKE2b-256 checksum
How to use checksums
ffc1bc7e3872dbc0aaed651ee948d7461962e87b01201cc84d65ff7e6b0a00fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp310-cp310-win_amd64.whl

Download URL uc2-3.0.0a8-cp310-cp310-win_amd64.whl
Size 369.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2bea4a96844171c8e3129280ae4c5451e28a18b87e2e6462b7fc01636a78fcc0
BLAKE2b-256 checksum
How to use checksums
4ded58a89730675e70b5a6e0f4b3f977e0c9b2838304633c231076a5501f8a9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 197.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e1a40df115a6337b4bb592e16b2c3bbc5aadcc85de05761240f32942dcb68f3a
BLAKE2b-256 checksum
How to use checksums
ce6c15350d2889c491d1429425878ed8d7998c1d6d8ef1aa975923c8576963f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp310-cp310-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a8-cp310-cp310-macosx_11_0_arm64.whl
Size 189.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
05d7eb55139bd0aecf3ebc1e0a5991caa91b0ce9b2efdd786bd955e31b900e65
BLAKE2b-256 checksum
How to use checksums
2a912e17d0ebe20ca2c6c0a5530116df999faafd9f1f79cffb6ff75741664a6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / uc2-3.0.0a8-cp310-cp310-macosx_10_9_x86_64.whl

Download URL uc2-3.0.0a8-cp310-cp310-macosx_10_9_x86_64.whl
Size 192.4 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
f5b4708103ffed91e70e2b2e949d5a078e3fadc18c438eb97082ac1f6c7401d1
BLAKE2b-256 checksum
How to use checksums
3447800b8ee9f2c83fe80112c0c89538c3d9f0e9ba4539ca2eff7cad113cedfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for uc2 3.0.0a8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page