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.0a9

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.0a9
File Size Uploaded Provenance Actions
uc2-3.0.0a9.tar.gz 559.4 kB Without provenance Details for uc2-3.0.0a9.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for uc2 3.0.0a9
File Actions
uc2-3.0.0a9-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for uc2-3.0.0a9-cp314-cp314-win_amd64.whl
uc2-3.0.0a9-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.0a9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a9-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for uc2-3.0.0a9-cp314-cp314-macosx_11_0_arm64.whl
uc2-3.0.0a9-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details for uc2-3.0.0a9-cp314-cp314-macosx_10_15_x86_64.whl
uc2-3.0.0a9-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for uc2-3.0.0a9-cp313-cp313-win_amd64.whl
uc2-3.0.0a9-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.0a9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a9-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for uc2-3.0.0a9-cp313-cp313-macosx_11_0_arm64.whl
uc2-3.0.0a9-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for uc2-3.0.0a9-cp313-cp313-macosx_10_13_x86_64.whl
uc2-3.0.0a9-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for uc2-3.0.0a9-cp312-cp312-win_amd64.whl
uc2-3.0.0a9-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.0a9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a9-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for uc2-3.0.0a9-cp312-cp312-macosx_11_0_arm64.whl
uc2-3.0.0a9-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for uc2-3.0.0a9-cp312-cp312-macosx_10_13_x86_64.whl
uc2-3.0.0a9-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for uc2-3.0.0a9-cp311-cp311-win_amd64.whl
uc2-3.0.0a9-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.0a9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a9-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for uc2-3.0.0a9-cp311-cp311-macosx_11_0_arm64.whl
uc2-3.0.0a9-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for uc2-3.0.0a9-cp311-cp311-macosx_10_9_x86_64.whl
uc2-3.0.0a9-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for uc2-3.0.0a9-cp310-cp310-win_amd64.whl
uc2-3.0.0a9-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.0a9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
uc2-3.0.0a9-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for uc2-3.0.0a9-cp310-cp310-macosx_11_0_arm64.whl
uc2-3.0.0a9-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for uc2-3.0.0a9-cp310-cp310-macosx_10_9_x86_64.whl

Total release size: 5.3 MB

Release files / uc2-3.0.0a9.tar.gz

Download URL uc2-3.0.0a9.tar.gz
Size 559.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d19e37e3a812c3cf09ef523c20fbeaad1b98386bf1a63b5c144c10943521cde0
BLAKE2b-256 checksum
How to use checksums
7a51ebee64694fa086c1eb6b135ddd7e5088a320a8e192423f35ef3315b854dd
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.0a9-cp314-cp314-win_amd64.whl

Download URL uc2-3.0.0a9-cp314-cp314-win_amd64.whl
Size 378.7 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
a612f8910d559006d58aeb32b0d133b58636471c5e7844edb40edab5d6bcd1ff
BLAKE2b-256 checksum
How to use checksums
317a3e29b7718265f34a0aa713161b32f32ae49a44c50d16f4035a53c0e442d9
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.0a9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a9-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
82e9fd0c3f9d47b40bae1da8114d05ee9a7c3eaf86a2730027cb27bd1e446a57
BLAKE2b-256 checksum
How to use checksums
e6b80f322b8819813c4e7f907e75ad62b86ac96e7f411c4f2da13a6ac1e36f16
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.0a9-cp314-cp314-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a9-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
78012d7a9023ed50aa60e0766acce7df6d54969e9170efe3ebf549d6cf91f13c
BLAKE2b-256 checksum
How to use checksums
c4b3191112aea3d40fc914fd6cbd82577a6bb89ce31d04de8a77c7b6ac1dccbe
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.0a9-cp314-cp314-macosx_10_15_x86_64.whl

Download URL uc2-3.0.0a9-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
b26063814f077e56ebb6d3e8eae1b068a8b66636a30733e27ec5054fa83dab8d
BLAKE2b-256 checksum
How to use checksums
013024a53e38a592ff9083ca50399e2e0226b704c0811c5f305c076c2c1ae340
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.0a9-cp313-cp313-win_amd64.whl

Download URL uc2-3.0.0a9-cp313-cp313-win_amd64.whl
Size 369.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
667a99352278b3e2549e8ce398e1389d710d13710c5ceae68eddad0ac718227a
BLAKE2b-256 checksum
How to use checksums
a100834de08502db874d9da82b2f4363718fbc45bf7c1f491718458fe4128bcf
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.0a9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a9-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
039c8ade817e59a1540734bc07f628fcbb4d89893b62ae437ea061ea88d0bd3f
BLAKE2b-256 checksum
How to use checksums
b4a99172ec29647a84eeb30523a1bbef540d235428d64a0c218b7cf3d6e0ce6b
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.0a9-cp313-cp313-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a9-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
27f802cd18780e870e397c2ba627f9103c7a0139dd923ec7b70743493b9ee116
BLAKE2b-256 checksum
How to use checksums
488937a8c7eea88b0007865fe61575f3d496f388ae67238f337b9b6c0620b132
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.0a9-cp313-cp313-macosx_10_13_x86_64.whl

Download URL uc2-3.0.0a9-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
04fa4f3fb8da361e71d0a9f5cdbd030f4fe7156ce10eb93ad7543a4ef3748cc8
BLAKE2b-256 checksum
How to use checksums
a6e2c55b8264065869ccd25e6a52fc45e3720f33e8885b918de7af20ec078bf6
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.0a9-cp312-cp312-win_amd64.whl

Download URL uc2-3.0.0a9-cp312-cp312-win_amd64.whl
Size 369.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
09d48c5102fd896c035c2a145fb9301f1ffec9202d301e77d66c29126a0674a3
BLAKE2b-256 checksum
How to use checksums
16f836fd9b91ca982643554d1bcbf1dc8b79dbcfaccb91c66f39c9c214dcafe5
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.0a9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a9-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
ae3e07de191d8c6d0b31969be9aa008b4a0c50647d999bd41896c99cc7fe2df9
BLAKE2b-256 checksum
How to use checksums
2fdbc99b36e6a0d95138352bcd3569627c34e5290e6f5151c214e2ee00ea7989
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.0a9-cp312-cp312-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a9-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
ad4ec27736b924e6b1e3b1f6ce9bab3572b6fc7823607841c5823ad783865f30
BLAKE2b-256 checksum
How to use checksums
1f357b02dd08ed4197d0b286271eaccea545991f26bcba808104a314f04b67f5
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.0a9-cp312-cp312-macosx_10_13_x86_64.whl

Download URL uc2-3.0.0a9-cp312-cp312-macosx_10_13_x86_64.whl
Size 192.9 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
565900e999b45826b7a35739dff49aed7aa40b617a55f8cd8c38f145635bebc0
BLAKE2b-256 checksum
How to use checksums
906c479660b1f2f8e88cc1d647874c137e9a06358abc2a998462185a5b17a04d
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.0a9-cp311-cp311-win_amd64.whl

Download URL uc2-3.0.0a9-cp311-cp311-win_amd64.whl
Size 369.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
db60e5c2a13f8dadd2cd148bf1a7cb5daf75cc045cb1048e3edfd0ca69681bfa
BLAKE2b-256 checksum
How to use checksums
fc6b21e17082f04c8dc4734471578d52481ee61896d7aa50dd9956bde24e1f3e
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.0a9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 197.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
24bab3a13b154609cadbe2fd5a59ed8d0cc7c381ce0553cf35378ec4e2ecc163
BLAKE2b-256 checksum
How to use checksums
4e5dabf2965a600112bec1bf114ddbe97e5bad4e6ca50016adaa7d60e33bde8d
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.0a9-cp311-cp311-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a9-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
e778ffaf356e767dba7fadd2baadd31527cc057dc5e92a56470981bdad7a4c93
BLAKE2b-256 checksum
How to use checksums
69b85206605c76d397929874f7c2ddf499db91bba576c4c3299f201bba0659aa
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.0a9-cp311-cp311-macosx_10_9_x86_64.whl

Download URL uc2-3.0.0a9-cp311-cp311-macosx_10_9_x86_64.whl
Size 192.3 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
7f3315de37cebad86f89f1163a69a242dd47e47f96fc8c3ade327435deacb122
BLAKE2b-256 checksum
How to use checksums
b87f0448cfc4e1f94c41ead1dcb627325751be39f87bc4a9aaa2cab048d19ae3
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.0a9-cp310-cp310-win_amd64.whl

Download URL uc2-3.0.0a9-cp310-cp310-win_amd64.whl
Size 369.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
deafe97fa65f7ce9f20d7b91765231f80084031d48fb1d641d0a2bd0ef2e7635
BLAKE2b-256 checksum
How to use checksums
e5ee3871441d2fa533e769e76fd2f88aa081b875ab9a4e8eccf26762c3889e1e
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.0a9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a9-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
b01a9c9287ca785a6f85e844b38d36b5c37654a9ef499383603b11755ac51c78
BLAKE2b-256 checksum
How to use checksums
6801d782967a0e5224e180a45105e6f339b647fc5d2d4afbdd152785f6995ead
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.0a9-cp310-cp310-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a9-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
d9285015eaca5124288642eb58d25c261345d7b6efd2bd575100a75e2d846667
BLAKE2b-256 checksum
How to use checksums
222bdbc309c5e1cdbb62084a6b441a46ca9538b4b4fa5f489560a0e53bca722c
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.0a9-cp310-cp310-macosx_10_9_x86_64.whl

Download URL uc2-3.0.0a9-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
cf752fd49a9a40d42dbea75741599b92617c190eb5bcb94fbf2a517759909faf
BLAKE2b-256 checksum
How to use checksums
4a980c09d72257ff7a0c77d9a37029596eb228bd0d9bef6e596d8f3955291f61
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.0a9

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