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 and multi-volume archives remain unsupported. 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(). Metadata objects can be passed directly to read, extract, and copy_to. They belong to the archive that produced them.

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.

Metadata

Release files for uc2 3.0.0a6

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

Built distributions (wheels)

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

Total release size: 4.8 MB

Release files / uc2-3.0.0a6.tar.gz

Download URL uc2-3.0.0a6.tar.gz
Size 309.3 kB
Tags Source
SHA-256 checksum
How to use checksums
485fe73d162e1e8492b726b775096efba0de81b1ec6f7164760bb0d1040b49d5
BLAKE2b-256 checksum
How to use checksums
2568dc64ea2400943d827723154d0cda8ce71683ab28eb610673f1388fc7b4fd
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.0a6-cp314-cp314-win_amd64.whl

Download URL uc2-3.0.0a6-cp314-cp314-win_amd64.whl
Size 363.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
f25b2ff3c8bf1a7bd8b55d863dc76e6419266de2b1fe2b5cabdd90c49f665bbf
BLAKE2b-256 checksum
How to use checksums
8d9703bd776ed171080c61a2f8a9c2e5504c2949191009d3f050ecbfc51f3169
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.0a6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 181.0 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
34ee5bd77d24012e7720fa3a4381ade2b23355970ffa6ca815d6ecdb22856457
BLAKE2b-256 checksum
How to use checksums
9e751aab0de4c8b5cca72663414dcf510e284154c9ad9a456c4c55acac4ff9c2
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.0a6-cp314-cp314-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a6-cp314-cp314-macosx_11_0_arm64.whl
Size 174.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3693b447cad88ad5641a268a31ce2fe5bf704e319dbd455e87a1706134dbcbb1
BLAKE2b-256 checksum
How to use checksums
d933aa285c6363c6d4873cf64a2e7c3c2c556cd16a8edb7d73a77c4f72257002
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.0a6-cp314-cp314-macosx_10_15_x86_64.whl

Download URL uc2-3.0.0a6-cp314-cp314-macosx_10_15_x86_64.whl
Size 177.9 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
f2bbce4181797c22879c7951e89cdf8f8ad20b85e8936973af1a7b344ffd5a6e
BLAKE2b-256 checksum
How to use checksums
25a517a921e3338cc074b7f8b9346f676bd0aff7ecba9097a9ad0e7c21adbd19
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.0a6-cp313-cp313-win_amd64.whl

Download URL uc2-3.0.0a6-cp313-cp313-win_amd64.whl
Size 354.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4f405f8b28ad1d55b4a8677192f8dbebf9672e2ace2891cb69ec0ccd7ee754d0
BLAKE2b-256 checksum
How to use checksums
4f3a652ada17b1237ee544a1b5d8dd17ea7e499f6427b0af4f2e7af70eb6aedb
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.0a6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 180.9 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1dfa05d6de1ffab36313f9b1ad41dd65bb29785fbf50c7fbe3a5b020a7e5e85e
BLAKE2b-256 checksum
How to use checksums
94b51fbc2fe6d3898f3c6b9369fcb3c36ade4a6f6f4e74504349c7f4c98ca950
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.0a6-cp313-cp313-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a6-cp313-cp313-macosx_11_0_arm64.whl
Size 174.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1a9dd6c78955fdddeee0ae81603899582fa8c521a6f5b8594747b87dc9fada9e
BLAKE2b-256 checksum
How to use checksums
1c90d7cc11cd67cdd3f943db8299671df865df1bb26d71f69ee77e8e866d24c2
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.0a6-cp313-cp313-macosx_10_13_x86_64.whl

Download URL uc2-3.0.0a6-cp313-cp313-macosx_10_13_x86_64.whl
Size 177.6 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
56da15d43d0d7255ef2ae2b5114bbf9c5712659c9f41d78918a2d2759f0d5533
BLAKE2b-256 checksum
How to use checksums
62d8b5d355a60b51a46561aaea2a0d69d67f07ca6ab30311a869d2df061c0259
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.0a6-cp312-cp312-win_amd64.whl

Download URL uc2-3.0.0a6-cp312-cp312-win_amd64.whl
Size 354.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
21709525531887222da41c74bbb2dcc976704a03418928a7208d11709e0f6ea1
BLAKE2b-256 checksum
How to use checksums
d924c5a6bfd14517ff75fbddfecfaba16431df9e02d616c8318843f9b96f7470
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.0a6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 180.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2dbd3e33e5e64ec4005ffbc30d7d207d561a6cf6f9647bdfe3183d9ea13d9be9
BLAKE2b-256 checksum
How to use checksums
e61210dfa39f450ad3f04ccc80d0c38d4aa8f1ac1e519e4a50e345e2118d9f9c
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.0a6-cp312-cp312-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a6-cp312-cp312-macosx_11_0_arm64.whl
Size 174.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9dde978dc1fceadc451e23f3f36b6f606dae1c948f353c7c183aaffb7545df55
BLAKE2b-256 checksum
How to use checksums
b599af12c5726515111e34c386c85ff9cfc000d0775a3a8913886f3ee067bd6c
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.0a6-cp312-cp312-macosx_10_13_x86_64.whl

Download URL uc2-3.0.0a6-cp312-cp312-macosx_10_13_x86_64.whl
Size 177.6 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
055ef5ad263446b9d8081e4c04bf096071cc362b8b822bb8f0fa8590a40d4fb0
BLAKE2b-256 checksum
How to use checksums
0df78ed60b94e0317b5ce2375418266caba300a8fd8c1c9234a4770d68401d68
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.0a6-cp311-cp311-win_amd64.whl

Download URL uc2-3.0.0a6-cp311-cp311-win_amd64.whl
Size 354.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8940ece3d2a1e82f65b95fc4b7f55b473d10afed72ac3aa10e574a9c3c5cc013
BLAKE2b-256 checksum
How to use checksums
2eee018d4d7e8faebbf58a0b47e14ed031123db08227a6eb0064d583d2cd9cd3
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.0a6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL uc2-3.0.0a6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 180.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d771755409a297af9d097acba8ed3f70b4f28899a0107fcd84261720788a8f79
BLAKE2b-256 checksum
How to use checksums
64e042209a2e15f81d2a4ad42d255688df2c64e904d5dc50184d9141e8f9eba6
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.0a6-cp311-cp311-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a6-cp311-cp311-macosx_11_0_arm64.whl
Size 174.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c9f837c5ec632355eefff51d72232199fa571a4977cf04ac4bc3ed7d29aad899
BLAKE2b-256 checksum
How to use checksums
e0b3d4b93a9321d26932284782c4df5c0d6186b054dc6a070c15c53d5e2319ca
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.0a6-cp311-cp311-macosx_10_9_x86_64.whl

Download URL uc2-3.0.0a6-cp311-cp311-macosx_10_9_x86_64.whl
Size 177.0 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
33b564fcf7157a45d9b7cbd3375a088fad13f2e648478171dee2170bdc1eea1b
BLAKE2b-256 checksum
How to use checksums
216931d6161937a95ff131d7935b47849c82f384786b4a962f990ca9d110b55f
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.0a6-cp310-cp310-win_amd64.whl

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

Download URL uc2-3.0.0a6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 181.0 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
388caedb9c46b77798b3aa2177fc0fd75625bfa9654bcac26779772d92e01a7d
BLAKE2b-256 checksum
How to use checksums
de70b9c0d202c65031a73e80932c900d254c5c1e843e3dadd7c368cfaf866a3b
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.0a6-cp310-cp310-macosx_11_0_arm64.whl

Download URL uc2-3.0.0a6-cp310-cp310-macosx_11_0_arm64.whl
Size 174.3 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a91649472f7775e471917f251f067357aa9035307a4b2af2427ae697316a75df
BLAKE2b-256 checksum
How to use checksums
8d4067c0a4bf93d11fc0633026c49cbe9fc41b2ff2847f6b3eb3511dcac18267
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.0a6-cp310-cp310-macosx_10_9_x86_64.whl

Download URL uc2-3.0.0a6-cp310-cp310-macosx_10_9_x86_64.whl
Size 177.2 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
d4a41385975b2bdf89251611a14e166be74b68609793190c9851f68096c98579
BLAKE2b-256 checksum
How to use checksums
4017b341a1e59fde84b05071971ba035ffa3cbf0a46c21f6823ba5ccf84ebc63
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.0a6

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