Skip to main content

UltraDict2

PyPI Package Tests Python 3.11-3.14 License

Sychronized, streaming Python dictionary that uses shared memory as a backend

This is a maintained fork of ronny-rentner/UltraDict, published on PyPI as UltraDict2. Install with pip install UltraDict2 and import with from UltraDict2 import UltraDict.

Warning: This is an early hack. There are only few unit tests and so on. Maybe not stable!

Features:

  • Fast (compared to other sharing solutions)
  • No running manager processes
  • Works in spawn and fork context
  • Safe locking between independent processes
  • Tested with Python 3.11 - 3.14 on Linux, Windows and Mac
  • Convenient, no setter or getters necessary
  • Optional recursion for nested dicts

Atomic operations via atomics2

Shared locking is built on atomics2, a maintained fork of the abandoned atomics package, rebuilt on patomic v1.1.0 with prebuilt wheels for Python 3.11 - 3.14 across Linux, Windows, and macOS (including arm64). It is installed automatically as a dependency, so shared_lock=True works out of the box.

General Concept

UltraDict uses multiprocessing.shared_memory to synchronize a dict between multiple processes.

It does so by using a stream of updates in a shared memory buffer. This is efficient because only changes have to be serialized and transferred.

If the buffer is full, UltraDict will automatically do a full dump to a new shared memory space, reset the streaming buffer and continue to stream further updates. All users of the UltraDict will automatically load full dumps and continue using streaming updates afterwards.

What lives where

The dict itself is not stored in shared memory. Every process keeps its own complete copy as an ordinary Python dict; shared memory carries the update stream and the snapshots used to keep those copies in step.

flowchart LR
    subgraph proc1["Process 1 (writer)"]
        d1["self.data<br/>full local copy"]
    end
    subgraph proc2["Process 2"]
        d2["self.data<br/>full local copy"]
    end
    subgraph proc3["Process 3"]
        d3["self.data<br/>full local copy"]
    end

    subgraph shm["Shared memory"]
        control["control<br/>1000 bytes<br/>position + dump counter"]
        buffer["update buffer<br/>buffer_size<br/>stream of changes"]
        dump["full dump<br/>snapshot of the whole dict"]
    end

    d1 -- "append frame" --> buffer
    d1 -- "snapshot when buffer is full" --> dump
    buffer -- "replay frames" --> d2
    buffer -- "replay frames" --> d3
    dump -- "reload everything" --> d2
    dump -- "reload everything" --> d3
    control -.- buffer
    control -.- dump

Two consequences worth planning for:

  • Reads are local. A read compares two integers in the control block and then hits the local dict. Nothing is deserialized unless something actually changed.
  • Memory scales with the number of processes. A 500 MB dict shared by 8 processes costs roughly 8 x 500 MB of RAM plus the shared segments, not 500 MB. Shared memory here is a transport, not a way to store one copy.

Writing

flowchart TD
    w["d[key] = value"] --> ser["serialize the change"]
    ser --> fits{"does the frame fit<br/>in the update buffer?"}
    fits -- yes --> append["append frame, advance position"]
    append --> cheap["cost: size of the change"]
    fits -- no --> full["serialize the whole dict into a full dump"]
    full --> reset["publish it, bump the dump counter, reset the buffer"]
    reset --> pricey["cost: size of the entire dict,<br/>paid again by every reader"]

A write that does not fit is never streamed at all: it reaches other processes only inside the snapshot. That is why buffer_size matters far more than it looks.

Issues

On Windows, if no process has any handles on the shared memory, the OS will gc all of the shared memory making it inaccessible for future processes. To work around this issue you can currently set full_dump_size which will cause the creator of the dict to set a static full dump memory of the requested size. This full dump memory will live as long as the creator lives. This approach has the downside that you need to plan ahead for your data size and if it does not fit into the full dump memory, it will break.

Security

UltraDict uses pickle to serialize data by default. Unpickling attacker-controlled data leads to arbitrary code execution, and any local process that can guess or enumerate the shared memory names can write to the buffers. Only use UltraDict between processes that already trust each other and run under user accounts you control; do not use it as a boundary against untrusted local processes. If you need to share data with less trusted processes, pass a safe serializer (e.g. one based on JSON) instead of pickle.

Alternatives

There are many alternatives:

How to use?

Simple

In one Python REPL:

Python 3.11 on linux
>>>
>>> from UltraDict2 import UltraDict
>>> ultra = UltraDict({ 1:1 }, some_key='some_value')
>>> ultra
{1: 1, 'some_key': 'some_value'}
>>>
>>> # We need the shared memory name in the other process.
>>> ultra.name
'psm_ad73da69'

In another Python REPL:

Python 3.11 on linux
>>>
>>> from UltraDict2 import UltraDict
>>> # Connect to the shared memory with the name above
>>> other = UltraDict(name='psm_ad73da69')
>>> other
{1: 1, 'some_key': 'some_value'}
>>> other[2] = 2

Back in the first Python REPL:

>>> ultra[2]
2

Nested

In one Python REPL:

Python 3.11 on linux
>>>
>>> from UltraDict2 import UltraDict
>>> ultra = UltraDict(recurse=True)
>>> ultra['nested'] = { 'counter': 0 }
>>> type(ultra['nested'])
<class 'UltraDict2.UltraDict2.UltraDict'>
>>> ultra.name
'psm_0a2713e4'

In another Python REPL:

Python 3.11 on linux
>>>
>>> from UltraDict2 import UltraDict
>>> other = UltraDict(name='psm_0a2713e4')
>>> other['nested']['counter'] += 1

Back in the first Python REPL:

>>> ultra['nested']['counter']
1

Performance comparison

Lets compare a classical Python dict, UltraDict, multiprocessing.Manager and Redis.

Cost per operation for dict, UltraDict, Manager dict and Redis on a log scale

Median across Python 3.11 - 3.14 on Debian 12 bare metal, 10,000 keys:

read vs dict write vs dict
dict 10 ns 1x 13 ns 1x
ultra.data (direct) 12 ns 1x — —
UltraDict 111 ns 11x 1.60 µs 122x
Manager dict 9.09 µs 886x 9.18 µs 700x
Redis, loopback 25.09 µs 2,445x 27.21 µs 2,075x
Redis, 1GbE LAN hop 206.8 µs 20,155x 218.5 µs 16,663x

Reading through UltraDict costs about 11x a plain dict, and is 82x faster than a Manager dict and 227x faster than a local Redis. Against a Redis on another machine, which is the more usual deployment, it is roughly 1900x faster. Reading ultra.data directly is within ~20% of a plain dict, at the cost of not seeing updates.

The gap in the middle of the chart is the point: there is nothing between reading local memory and crossing a socket. A read that finds nothing new never leaves the process, which is what buys the two orders of magnitude.

Writes cost more than reads because the change is serialized and published, and because a write that does not fit the buffer forces a full dump of the whole dict. See Buffer sizes and read performance for how to size it.

Python version

Across 3.11 - 3.14 everything lands within 1.1 - 1.4x, which is close enough to call flat:

read 3.11 3.12 3.13 3.14
dict 9 ns 10 ns 11 ns 10 ns
UltraDict 111 ns 102 ns 111 ns 100 ns
Manager dict 7.32 µs 8.03 µs 9.16 µs 9.09 µs
Redis 24.05 µs 24.51 µs 25.21 µs 25.09 µs

No version is worth picking over another, and that was already true before the control block counters stopped being read through int.from_bytes(): on this machine the spread was 1.14x then and 1.11x now.

One caveat that cost us a wrong conclusion, recorded here so nobody repeats it: the same benchmark inside a virtual machine reported UltraDict as 2.1x slower on 3.13 than on 3.11, reproducibly. On bare metal that gap is 1.1x. Virtualized IPC and memory access inflate this workload unevenly across versions, so benchmark UltraDict on the kind of machine you will actually deploy on.

Method

Debian 12 bare metal, 12 cores, each Python version in its official Docker image, Redis 7 on the same host over loopback, 10,000 keys, best of three timing repeats. Every candidate gets its own iteration count and results are reported per operation, so a 11 ns operation and a 25 µs one are directly comparable. The LAN row was measured from a second machine on a 1GbE network, where the four Python versions agree to within 1.02x because the wire dominates.

This is not a real life workload and it is single process: it measures the cost of the operations, not what happens when several processes contend.

Reproduce it with tests/performance/compare.py. There is also a throughput test in tests/performance/performance.py, and tests/performance/buffer_size_sweep.py for choosing buffer_size.

I am interested in extending the performance testing to other solutions (like sqlite, memcached, etc.) and to more complex use cases with multiple processes working in parallel.

Parameters

Ultradict(*arg, name=None, create=None, buffer_size=10000, serializer=pickle, shared_lock=False, full_dump_size=None, auto_unlink=None, recurse=False, recurse_register=None, **kwargs)

name: Name of the shared memory. A random name will be chosen if not set. By default, if a name is given a new shared memory space is created if it does not exist yet. Otherwise the existing shared memory space is attached.

create: Can be either True or False or None. If set to True, a new UltraDict will be created and an exception is thrown if one exists already with the given name. If kept at the default value None, either a new UltraDict will be created if the name is not taken or an existing UltraDict will be attached.

Setting create=True does ensure not accidentally attaching to an existing UltraDict that might be left over.

buffer_size: Size of the shared memory buffer used for streaming changes of the dict. The buffer size limits the biggest change that can be streamed, so when you use large values or deeply nested dicts you might need a bigger buffer. Otherwise, if the buffer is too small, it will fall back to a full dump. Creating full dumps can be slow, depending on the size of your dict.

Whenever the buffer is full, a full dump will be created. A new shared memory is allocated just big enough for the full dump. Afterwards the streaming buffer is reset. All other users of the dict will automatically load the full dump and continue streaming updates.

(Also see the section Memory management below!)

serializer: Use a different serialized from the default pickle, e. g. marshal, dill, jsons. The module or object provided must support the methods loads() and dumps()

shared_lock: When writing to the same dict at the same time from multiple, independent processes, they need a shared lock to synchronize and not overwrite each other's changes. Shared locks are slow. They rely on the atomics2 package for atomic locks. By default, UltraDict will use a multiprocessing.RLock() instead which works well in fork context and is much faster.

(Also see the section Locking below!)

full_dump_size: If set, uses a static full dump memory instead of dynamically creating it. This might be necessary on Windows depending on your write behaviour. On Windows, the full dump memory goes away if the process goes away that had created the full dump. Thus you must plan ahead which processes might be writing to the dict and therefore creating full dumps.

auto_unlink: If True, the creator of the shared memory will automatically unlink the handle at exit so it is not visible or accessible to new processes. All existing, still connected processes can continue to use the dict.

recurse: If True, any nested dict objects will be automaticall wrapped in an UltraDict allowing transparent nested updates.

recurse_register: Has to be either the name of an UltraDict or an UltraDict instance itself. Will be used internally to keep track of dynamically created, recursive UltraDicts for proper cleanup when using recurse=True. Usually does not have to be set by the user.

Memory management

UltraDict uses shared memory buffers and those usually live is RAM. UltraDict does not use any management processes to keep track of buffers. Also it cannot know when to free those shared memory buffers again because you might want the buffers to outlive the process that has created them.

By convention you should set the parameter auto_unlink to True for exactly one of the processes that is using the UltraDict. The first process that is creating a certain UltraDict will automatically get the flag auto_unlink=True unless you explicitly set it to False. When this process with the auto_unlink=True flag ends, it will try to unlink (free) all shared memory buffers.

A special case is the recursive mode using recurse=True parameter. This mode will use an additional internal UltraDict to keep track of recursively nested UltraDict instances. All child UltraDicts will write to this register the names of the shared memory buffers they are creating. This allows the buffers to outlive the processes and still being correctly cleanup up by at the end of the program.

Buffer sizes and read performance:

There are 3 cases that can occur when you read from an `UltraDict:

  1. No new updates: This is the fastes cases. UltraDict was optimized for this case to find out as quickly as possible if there are no updates on the stream and then just return the desired data. If you want even better read perforamance you can directly access the underlying data attribute of your UltraDict, though at the cost of not getting real time updates anymore.

  2. Streaming update: This is usually fast, depending on the size and amount of that data that was changed but not depending on the size of the whole UltraDict. Only the data that was actually changed has to be unserialized.

  3. Full dump load: This can be slow, depending on the total size of your data. If your UltraDict is big it might take long to unserialize it.

flowchart TD
    r["d[key]"] --> chk{"dump counter<br/>changed?"}
    chk -- yes --> load["load the full dump"]
    load --> c3["case 3: cost is the whole dict"]
    chk -- no --> pos{"stream position<br/>moved?"}
    pos -- yes --> replay["replay only the new frames"]
    replay --> c2["case 2: cost is the changes"]
    pos -- no --> hit["return from the local copy"]
    hit --> c1["case 1: two integer comparisons"]

Note that synchronization is pull based and lazy: there is no background thread. A process only catches up when it touches the dict, so an idle process pays for everything it missed on its next access.

Given the above 3 cases, you need to balance the size of your data and your write patterns with the streaming buffer_size of your UltraDict. If the streaming buffer is full, a full dump has to be created. Thus, if your full dumps are expensive due to their size, try to find a good buffer_size to avoid creating too many full dumps.

On the other hand, if for example you only change back and forth the value of one single key in your UltraDict, it might be useless to process a stream of all these back and forth changes. It might be much more efficient to simply do one full dump which might be very small because it only contains one key.

Locking

Every UltraDict instance has a lock attribute which is either a multiprocessing.RLock or an UltraDict.SharedLock if you set shared_lock=True when creating the UltraDict.

RLock is the fastest locking method that is used by default but you can only use it if you fork your child processes. Forking is the default on Linux systems.

In contrast, on Windows systems, forking is not available and Python will automatically use the spawn method when creating child processes. You should then use the parameter shared_lock=True when using UltraDict. This uses the atomics2 package, which is installed automatically as a dependency.

How to use the locking?

ultra = UltraDict(shared_lock=True)

with ultra.lock:
	ultra['counter']++

# The same as above with all default parameters
with ultra.lock(timeout=None, block=True, steal=False, sleep_time=0.000001):
	ultra['counter']++

# Busy wait, will result in 99 % CPU usage, fastest option
# Ideally number of processes using the UltraDict should be < number of CPUs
with ultra.lock(sleep_time=0):
	ultra['counter']++

try:
	result = ultra.lock.acquire(block=False)
	ultra.lock.release()
except UltraDict.Exceptions.CannotAcquireLock as e:
	print(f'Process with PID {e.blocking_pid} is holding the lock')

try:
	with ultra.lock(timeout=1.5):
		ultra['counter']++
except UltraDict.Exceptions.CannotAcquireLockTimeout:
	print('Stale lock?')

with ultra.lock(timeout=1.5, steal_after_timeout=True):
	ultra['counter']++

Explicit cleanup

Sometimes, when your program crashes, no cleanup happens and you might have a corrupted shared memeory buffer that only goes away if you manually delete it.

On Linux/Unix systems, those buffers usually live in a memory based filesystem in the folder /dev/shm. You can simply delete the files there.

Another way to do this in code is like this:

# Unlink both shared memory buffers possibly used by UltraDict
name = 'my-dict-name'
UltraDict.unlink_by_name(name, ignore_errors=True)
UltraDict.unlink_by_name(f'{name}_memory', ignore_errors=True)

Advanced usage

See examples folder

>>> ultra = UltraDict({ 'init': 'some initial data' }, name='my-name', buffer_size=100_000)
>>> # Let's use a value with 100k bytes length.
>>> # This will not fit into our 100k bytes buffer due to the serialization overhead.
>>> ultra[0] = ' ' * 100_000
>>> ultra.print_status()
{'buffer': SharedMemory('my-name_memory', size=100000),
 'buffer_size': 100000,
 'control': SharedMemory('my-name', size=1000),
 'full_dump_counter': 1,
 'full_dump_counter_remote': 1,
 'full_dump_memory': SharedMemory('psm_765691cd', size=100057),
 'full_dump_memory_name_remote': 'psm_765691cd',
 'full_dump_size': None,
 'full_dump_static_size_remote': <memory at 0x7fcbf5ca6580>,
 'lock': <RLock(None, 0)>,
 'lock_pid_remote': 0,
 'lock_remote': 0,
 'name': 'my-name',
 'recurse': False,
 'recurse_remote': <memory at 0x7fcbf5ca6700>,
 'serializer': <module 'pickle' from '/usr/lib/python3.11/pickle.py'>,
 'shared_lock_remote': <memory at 0x7fcbf5ca6640>,
 'update_stream_position': 0,
 'update_stream_position_remote': 0}

Note: All status keys ending with _remote are stored in the control shared memory space and shared across processes.

Other things you can do:

>>> # Create a full dump
>>> ultra.dump()

>>> # Load latest full dump if one is available
>>> ultra.load()

>>> # Show statistics
>>> ultra.print_status()

>>> # Force load of latest full dump, even if we had already processed it.
>>> # There might also be streaming updates available after loading the full dump.
>>> ultra.load(force=True)

>>> # Apply full dump and stream updates to
>>> # underlying local dict, this is automatically
>>> # called by accessing the UltraDict in any usual way,
>>> # but can be useful to call after a forced load.
>>> ultra.apply_update()

>>> # Access underlying local dict directly for maximum performance
>>> ultra.data

>>> # Use any serializer you like, given it supports the loads() and dumps() methods
>>> import jsons
>>> ultra = UltraDict(serializer=jsons)

>>> # Close connection to shared memory; will return the data as a dict
>>> ultra.close()

>>> # Unlink all shared memory, it will not be visible to new processes afterwards
>>> ultra.unlink()

Metrics

get_metrics() returns a plain dataclass of scalars, so you can feed a monitoring system without UltraDict pulling in a monitoring dependency.

>>> ultra = UltraDict()
>>> ultra['some key'] = 'some value'
>>> ultra.get_metrics()
Metrics(item_count=1, item_size_bytes_min=39, item_size_bytes_max=39, item_size_bytes_sum=39,
        item_size_observations_total=1, buffer_size_bytes=10000, buffer_used_bytes=45,
        buffer_used_fraction=0.0045, full_dump_size_bytes=None, full_dump_last_bytes=None,
        full_dump_total=0, buffer_full_forced_dump_total=0, full_dump_memory_full_total=0,
        full_dump_too_fast_total=0, shm_total_bytes=67108864, shm_used_bytes=1052672,
        shm_free_bytes=66056192)

The item size fields describe the serialized size of the writes this instance has made, not a measurement of the current contents. Measuring the latter would mean re-serializing every key on every call. The mean is item_size_bytes_sum / item_size_observations_total.

The shm_* fields report the whole /dev/shm filesystem, shared by every process on the machine. They are None on platforms without /dev/shm, such as Windows and macOS.

Counters are per instance, are never shared through the control memory, and reset when the process restarts. get_metrics() takes no lock, so a value can be one write stale.

Exporting to Prometheus

Register a collector that scrapes on demand:

from prometheus_client.core import CounterMetricFamily, GaugeMetricFamily, REGISTRY

class UltraDictCollector:
    def __init__(self, ultra):
        self.ultra = ultra

    def collect(self):
        metrics = self.ultra.get_metrics()
        labels  = [self.ultra.name]

        gauge = GaugeMetricFamily('ultradict_items', 'Items in the dict', labels=['name'])
        gauge.add_metric(labels, metrics.item_count)
        yield gauge

        gauge = GaugeMetricFamily('ultradict_buffer_used_fraction', 'Update buffer fill level', labels=['name'])
        gauge.add_metric(labels, metrics.buffer_used_fraction)
        yield gauge

        counter = CounterMetricFamily('ultradict_buffer_full_forced_dumps', 'Full dumps caused by a full buffer', labels=['name'])
        counter.add_metric(labels, metrics.buffer_full_forced_dump_total)
        yield counter

REGISTRY.register(UltraDictCollector(ultra))

What to watch:

Metric Meaning
buffer_full_forced_dump_total rising buffer_size is too small for your write rate. Every event is a full dump of the whole dict.
full_dump_memory_full_total > 0 The dict outgrew a static full_dump_size. Writes are failing.
full_dump_too_fast_total rising Readers cannot keep up with the dump rate and are reloading.
shm_free_bytes falling The machine is running out of shared memory, possibly because of leaked segments.

Contributing

Contributions are always welcome!

Metadata

Release files for UltraDict2 0.3.1

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

Source distribution (sdist)

Source distribution for UltraDict2 0.3.1
File Size Uploaded Provenance Actions
ultradict2-0.3.1.tar.gz 455.4 kB With provenance Details for ultradict2-0.3.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for UltraDict2 0.3.1
File Actions
ultradict2-0.3.1-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details for ultradict2-0.3.1-cp314-cp314-win_arm64.whl
ultradict2-0.3.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for ultradict2-0.3.1-cp314-cp314-win_amd64.whl
ultradict2-0.3.1-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details for ultradict2-0.3.1-cp314-cp314-win32.whl
ultradict2-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for ultradict2-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
ultradict2-0.3.1-cp314-cp314-musllinux_1_2_i686.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-32 Details for ultradict2-0.3.1-cp314-cp314-musllinux_1_2_i686.whl
ultradict2-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details for ultradict2-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl
ultradict2-0.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for ultradict2-0.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
ultradict2-0.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for ultradict2-0.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
ultradict2-0.3.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.14 CPython 3.14 Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details for ultradict2-0.3.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
ultradict2-0.3.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for ultradict2-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
ultradict2-0.3.1-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details for ultradict2-0.3.1-cp314-cp314-macosx_10_15_x86_64.whl
ultradict2-0.3.1-cp314-cp314-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) Details for ultradict2-0.3.1-cp314-cp314-macosx_10_15_universal2.whl
ultradict2-0.3.1-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details for ultradict2-0.3.1-cp313-cp313-win_arm64.whl
ultradict2-0.3.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for ultradict2-0.3.1-cp313-cp313-win_amd64.whl
ultradict2-0.3.1-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details for ultradict2-0.3.1-cp313-cp313-win32.whl
ultradict2-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for ultradict2-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
ultradict2-0.3.1-cp313-cp313-musllinux_1_2_i686.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-32 Details for ultradict2-0.3.1-cp313-cp313-musllinux_1_2_i686.whl
ultradict2-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details for ultradict2-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
ultradict2-0.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for ultradict2-0.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
ultradict2-0.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for ultradict2-0.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
ultradict2-0.3.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-32, Linux glibc 2.5+ x86-32 Details for ultradict2-0.3.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
ultradict2-0.3.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for ultradict2-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
ultradict2-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for ultradict2-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl
ultradict2-0.3.1-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details for ultradict2-0.3.1-cp313-cp313-macosx_10_13_universal2.whl
ultradict2-0.3.1-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details for ultradict2-0.3.1-cp312-cp312-win_arm64.whl
ultradict2-0.3.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for ultradict2-0.3.1-cp312-cp312-win_amd64.whl
ultradict2-0.3.1-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for ultradict2-0.3.1-cp312-cp312-win32.whl
ultradict2-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for ultradict2-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
ultradict2-0.3.1-cp312-cp312-musllinux_1_2_i686.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-32 Details for ultradict2-0.3.1-cp312-cp312-musllinux_1_2_i686.whl
ultradict2-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details for ultradict2-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
ultradict2-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for ultradict2-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
ultradict2-0.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for ultradict2-0.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
ultradict2-0.3.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details for ultradict2-0.3.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
ultradict2-0.3.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for ultradict2-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
ultradict2-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for ultradict2-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl
ultradict2-0.3.1-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details for ultradict2-0.3.1-cp312-cp312-macosx_10_13_universal2.whl
ultradict2-0.3.1-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details for ultradict2-0.3.1-cp311-cp311-win_arm64.whl
ultradict2-0.3.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for ultradict2-0.3.1-cp311-cp311-win_amd64.whl
ultradict2-0.3.1-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details for ultradict2-0.3.1-cp311-cp311-win32.whl
ultradict2-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for ultradict2-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
ultradict2-0.3.1-cp311-cp311-musllinux_1_2_i686.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-32 Details for ultradict2-0.3.1-cp311-cp311-musllinux_1_2_i686.whl
ultradict2-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details for ultradict2-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
ultradict2-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for ultradict2-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
ultradict2-0.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for ultradict2-0.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
ultradict2-0.3.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-32, Linux glibc 2.28+ x86-32 Details for ultradict2-0.3.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
ultradict2-0.3.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for ultradict2-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
ultradict2-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for ultradict2-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl
ultradict2-0.3.1-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details for ultradict2-0.3.1-cp311-cp311-macosx_10_9_universal2.whl

Total release size: 51.4 MB

Release files / ultradict2-0.3.1.tar.gz

Download URL ultradict2-0.3.1.tar.gz
Size 455.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cf3c0eb8db2569e0462bc636722f39689ecba553c5ee2de3809f8984b29bc3b1
BLAKE2b-256 checksum
How to use checksums
fd14cf8fd08e726792051e56366676ff65e8f1ed0ad002f0230e3a4e2214d733
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-win_arm64.whl

Download URL ultradict2-0.3.1-cp314-cp314-win_arm64.whl
Size 450.9 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
e64f1873f9b2cbb14aa4cbfa97a9404aa122dcf22f8a11db759c515481c4eef6
BLAKE2b-256 checksum
How to use checksums
9b21e7fc85d820099024158bae1e9cb152bbfad7013387e038aecfb72047cde9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-win_amd64.whl

Download URL ultradict2-0.3.1-cp314-cp314-win_amd64.whl
Size 468.1 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
d3cf51ff3796c762bb1bad8c69920cd38ce7c4ff64fc43a728e1ff8772398fdb
BLAKE2b-256 checksum
How to use checksums
4104fbde083c732dbf413515c32481ac2fcc7450a07f35fc8f936350e1d68e8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-win32.whl

Download URL ultradict2-0.3.1-cp314-cp314-win32.whl
Size 446.0 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
7d273f12e35a4cf16c4a0326ce94cfda9ea40d889c3807b3d37ab3ec27a236a9
BLAKE2b-256 checksum
How to use checksums
0f233f1a104e181761bf7e6e513b6deb04518d00d786e053178fa8dee8197695
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL ultradict2-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
014c94a0c41b3f28805ae60c2c5c7a3cc74d06861a8f85b1aba92668313bf54c
BLAKE2b-256 checksum
How to use checksums
4179ec3c79e0aba5cb37a51474e2e713dfa6b95326e3f0ca6d7d3e57b428d265
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-musllinux_1_2_i686.whl

Download URL ultradict2-0.3.1-cp314-cp314-musllinux_1_2_i686.whl
Size 1.6 MB
Tags CPython 3.14 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
5ba3c3f86083d491398d96d712a378ae31441c4df947f406a50cc4ddbf03c21b
BLAKE2b-256 checksum
How to use checksums
59659b9dafcaf3b31b034d87159c82d11f58073b3b12f2129fec6d2df479ce13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL ultradict2-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl
Size 1.6 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
57fe5d9e5b3eab8ca30fc64428b06327ba1e13c0f467e5d48b1ce20dde95bcaf
BLAKE2b-256 checksum
How to use checksums
cb6c128db34d5ba48278d37334eed8a1a4cba47d2414b5c9c741cb859979c3a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ultradict2-0.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
15fd252a080cce4c0c9d2e893ebd758a453c130fd3d66ed23faf8699f91501f4
BLAKE2b-256 checksum
How to use checksums
6e2c704d516f05b9883800b2e588e7745befaea8de6ac98a07a86d10d44b7fcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL ultradict2-0.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
63e8d5a2d5e002089765ec545b28e942d012275de1b76b909fcf269a8dbe712b
BLAKE2b-256 checksum
How to use checksums
56115607219577353b8d98c64de9e0567afa7f8efae3469656a416819452303b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL ultradict2-0.3.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
c85fa7f2cb9190b6a07c1aaad6f7d4c3396270e7b2ab5e4bf70682fdaa151745
BLAKE2b-256 checksum
How to use checksums
330198b326a58ab3c7f710f780a59224b68e9776f6d6c5f90547ae5cffe23bd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL ultradict2-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
Size 501.2 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d39404bebadb80da439b462f8e7cfd2afd0f3f8f1d8cacec58ac32040986ece0
BLAKE2b-256 checksum
How to use checksums
dcc6c0cfba8c06d72b7b49c2ff042d87114c15ebfb015629a3fd18f82fd12127
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-macosx_10_15_x86_64.whl

Download URL ultradict2-0.3.1-cp314-cp314-macosx_10_15_x86_64.whl
Size 508.9 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
f844f7259ca7207da8e371f66a2cb0f1ffb47f2a23ca8bb4bca066ed17f6661e
BLAKE2b-256 checksum
How to use checksums
82a40702626a29eb90811c962fedd25aebad5edf973aaa1e7c229211d422fa1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp314-cp314-macosx_10_15_universal2.whl

Download URL ultradict2-0.3.1-cp314-cp314-macosx_10_15_universal2.whl
Size 690.5 kB
Tags CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
4c8f7fe17c82ca8339092e016ff8e729de1a365d875aefd83e69ac94b3b64978
BLAKE2b-256 checksum
How to use checksums
c76b60f46d79d4fbf8b378599f3c4b2cb9fd4ea9b9980db2c744d52be0aede47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-win_arm64.whl

Download URL ultradict2-0.3.1-cp313-cp313-win_arm64.whl
Size 452.5 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
aa866dfc916dc5e2e6b5169385a069d5c43592a2c630847bd864ef8dc0a823ac
BLAKE2b-256 checksum
How to use checksums
935dabfb3e948cef8cf6e718be4fa5a596777a3e3d8e65eb1f373f849ada2654
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-win_amd64.whl

Download URL ultradict2-0.3.1-cp313-cp313-win_amd64.whl
Size 471.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
40833f2d5bcd5e25a350bd4311a8202cb2e07aba93927aa09b8c37b3f8c458cc
BLAKE2b-256 checksum
How to use checksums
c324a7b3b9a7f083dbd99b801bfef74c76e87dd24754a23a65d7c578c06de33e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-win32.whl

Download URL ultradict2-0.3.1-cp313-cp313-win32.whl
Size 449.7 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
b9855ac7216c8da5f5ff9f030d655dbe9e4ccf03299609319d58894603e73cce
BLAKE2b-256 checksum
How to use checksums
e1f1d1dbe1c668a5b45d3e251340528154ec85f3960ffecc85f7ebf180d84df1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL ultradict2-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
841d10847bbe0adffc1ce529f82d62290cb79c4f323ee3cdbae7d7d6d56e52b7
BLAKE2b-256 checksum
How to use checksums
541d54742b6d2cd709228444ebe47e8918b02e8979f2ff72edbc98d24fbea7e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-musllinux_1_2_i686.whl

Download URL ultradict2-0.3.1-cp313-cp313-musllinux_1_2_i686.whl
Size 1.6 MB
Tags CPython 3.13 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
f831bb1d43170516cd3cc04473a3dcf29cbeb552fba8501fbddf146e4b2618ef
BLAKE2b-256 checksum
How to use checksums
f57a70e1822528d066cb41d59819af7923fa98c182768740dd9ee7314162f214
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL ultradict2-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
Size 1.6 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e2a2e59b6bdcbfb82be5d1fa7b5ba0db0fc4c27a99a7008d300dd25faa692e4b
BLAKE2b-256 checksum
How to use checksums
7060a1fae2dc8a69fb57e51733f74c074c949eed9646d241d9d85464b0cb899f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ultradict2-0.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b0907fcdb139c4256e8e66ce94a1935bb075afaec1c3e90cabf6a88835c90ee3
BLAKE2b-256 checksum
How to use checksums
0e6fc67a2ff6b5f385ad74e02b030905e47b24500b385a639aa67545b7ab7520
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL ultradict2-0.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7173818cff9584baaf699c99233d9355f25553731fa974501aade59fef886d29
BLAKE2b-256 checksum
How to use checksums
51aada83553b53a4463ba83401fa184991766ee86da030ee306d2d774d9b8eb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL ultradict2-0.3.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
19b3bfa4ca6d51dd92344f6fb6f28d4f14697f52713458f571d834cd5cf2d197
BLAKE2b-256 checksum
How to use checksums
d23a87aba21aeefea8cacb1523620c7134036f4d0e93848be8170fa0f83a6511
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL ultradict2-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Size 499.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e7b5e2266ace414085a7ef5561cebb698156617b5b220cd7b693afa7165a79a0
BLAKE2b-256 checksum
How to use checksums
2234a665b9e1f0c0114dca882a83482c400440cd96b0d78c29ec5401d504d3e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl

Download URL ultradict2-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl
Size 508.7 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
9de0e9f3d14d0d0a8e6f343c53d0b02f6d4d97e70cf9af076af9fd27785cbc0a
BLAKE2b-256 checksum
How to use checksums
89232e240a6bb66691bcf1754098275e3c0d1e552521a1280465f931fe2a0e1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp313-cp313-macosx_10_13_universal2.whl

Download URL ultradict2-0.3.1-cp313-cp313-macosx_10_13_universal2.whl
Size 688.8 kB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
218b7dfeacc88cfc78550f38738e19a11938edf2e010174088e4588f4269ba40
BLAKE2b-256 checksum
How to use checksums
ac522b363f93a6eb7383dab71758023fb58418fcc50c6ad670787463f0d1499d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-win_arm64.whl

Download URL ultradict2-0.3.1-cp312-cp312-win_arm64.whl
Size 452.7 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
3487f7d432088906dab0dafe8b6ae841f6bd51f14839a7458e3af4e2dd7751bd
BLAKE2b-256 checksum
How to use checksums
901e918ac3912a348b9b9ce8ef015e4ae865422ec101832c377bf2ec2c9d714c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-win_amd64.whl

Download URL ultradict2-0.3.1-cp312-cp312-win_amd64.whl
Size 471.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2e7a50a529b87b0d60b3d8f101de2e1ca87e0866410a825170146d8980223ef2
BLAKE2b-256 checksum
How to use checksums
6cc7146835163eceedda23342bdbc88e83ecfe3f44e7fd6d768fb6d59ce8bf81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-win32.whl

Download URL ultradict2-0.3.1-cp312-cp312-win32.whl
Size 450.2 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
b6e1951425819d8e3f9e00fd204340d582d9362df0a7d772a838ebea9f62607a
BLAKE2b-256 checksum
How to use checksums
4541827b8315be7c2d08fee58767bbe322561db6e92136a090c1dfc30ae0b8e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL ultradict2-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
899ab4f43ffcdedf497131a426cce10df2ff6e1a9435e88ba06095ea42006c82
BLAKE2b-256 checksum
How to use checksums
991b0e6e384107e6d29a8a237fd869633dc27376349cfd4e9be8673c057e5d2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-musllinux_1_2_i686.whl

Download URL ultradict2-0.3.1-cp312-cp312-musllinux_1_2_i686.whl
Size 1.6 MB
Tags CPython 3.12 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
8a3d5ccbe1a4b0d20e94d4e8762504b5dde3659faa94ed01e19b928ab2b8aaf3
BLAKE2b-256 checksum
How to use checksums
73b4d661a93eabbcc5c5f20ebc87f4c57d6b3746d67e63dd05f1daeecf0e15db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL ultradict2-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
Size 1.6 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
5230806a76ac974aeba715c2c449e93c451c8170016125b250bffff7717bb6d2
BLAKE2b-256 checksum
How to use checksums
0faba7bf0b988052ab45c9191f211b17d86da704fa44bd349945a11c216e42fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ultradict2-0.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
01a3a1b060cdedb284fa7e359cafe56fd1722b62bfb6d57cfa5d8a564911f219
BLAKE2b-256 checksum
How to use checksums
aaf518c7a6162c5b8e2bd6d6e3aca51807fa8ea25081c628e19a6757e861296e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL ultradict2-0.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8d3a044a433fa89d2a7a42ca9f3b903bab2751e2c91ae1c9efc5fc174f236e02
BLAKE2b-256 checksum
How to use checksums
55058ec41d5a99a5206d3ec9fe2c957aae554458efc04d246cc004cb86cc93d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL ultradict2-0.3.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
3d512e25e5568206453ebcaf92e31dcfcb99829568d9b362d895497bdffa9f98
BLAKE2b-256 checksum
How to use checksums
d6939f87abe58bd57e438447fefecf2ceab8a2a39e01d989206d4813dd10706b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL ultradict2-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Size 500.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2ffcdf7583906246e472ed1df4957be320867cfc304c0d2785ac99ebb00c015b
BLAKE2b-256 checksum
How to use checksums
98750d7e64b30dca0345e0a3d8e68d79f8e05f0e75643d3794642c977d4775fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL ultradict2-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 509.6 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
a4c7798649cba481663fe6354561a15e5b05c3133ec456d608b87e060708a214
BLAKE2b-256 checksum
How to use checksums
861cc72c936da9b4b147a5ad01052e08b03dae018a88fc5052df197761c91d22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp312-cp312-macosx_10_13_universal2.whl

Download URL ultradict2-0.3.1-cp312-cp312-macosx_10_13_universal2.whl
Size 690.8 kB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
0cc994b6ff88a511dcccc657dea101de3bc4b26a2a9b2fd07a3c24bb23a2575c
BLAKE2b-256 checksum
How to use checksums
7ed9f6ca36975a735addc9551f3f64bf225e1297b9b0e4982a2bf2074156d36a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-win_arm64.whl

Download URL ultradict2-0.3.1-cp311-cp311-win_arm64.whl
Size 455.4 kB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
2ecc5cc7228a1c162b17469aec889d8774773e0d5ee7ec54a72f24dc1f0416c5
BLAKE2b-256 checksum
How to use checksums
ec4adbb0be2ec2daba32e8787b4b0651d93a2a12aa2374721e04a47908a63cbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-win_amd64.whl

Download URL ultradict2-0.3.1-cp311-cp311-win_amd64.whl
Size 475.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b3ce30529b77fb76b67d7cde46dd7c053c9514c6a2bf2d6764b2c7f065df8d3e
BLAKE2b-256 checksum
How to use checksums
207a0504b2dae9112aaa72ceeafb3539824786755123c2464b57620f9712835c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-win32.whl

Download URL ultradict2-0.3.1-cp311-cp311-win32.whl
Size 452.7 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
0e09b90e3ed34302682a664e15fde7191ec3bc276b6eeb43ae588571a983a28b
BLAKE2b-256 checksum
How to use checksums
3d1cba44f9501eac3d4b1628d7fc2d4b202aed6a553cb69d02f3cd45b2519253
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL ultradict2-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4b0e927cff67e51441b88500cd0dbdbe25f5bb560c4b3bc22d1fdac58e72fac8
BLAKE2b-256 checksum
How to use checksums
78301303b45b954dd9c01c53de77b7b8d9e79a510f1052d13d1f35196895d901
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-musllinux_1_2_i686.whl

Download URL ultradict2-0.3.1-cp311-cp311-musllinux_1_2_i686.whl
Size 1.7 MB
Tags CPython 3.11 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
0d1ed508a4059bdcd5d107fa2becb8883bf4daab3eff1362bcae7f5ea37b18fc
BLAKE2b-256 checksum
How to use checksums
952f9d600c5ebdd321c4b03025db0e6ceaace8789ad31f0041f00222a07f8f89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL ultradict2-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
Size 1.7 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e21b57ee01a93edb8cee705220cb99e8692a25cd0249a2f2a2e166d92ebbaaac
BLAKE2b-256 checksum
How to use checksums
1d897889e20fff3119fb1b24b0d8d3b7adbaca5898e1814b36568999c144ec14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ultradict2-0.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9d46638c73073f4c1683a7aeeaeaf2d732218b6e268f15727354f8a8f52794f5
BLAKE2b-256 checksum
How to use checksums
8ccf22dfda5f7f69310d904a5b7905d5c00c5134cd271a8aefa738820951cb7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL ultradict2-0.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c2f71f64786aa5032001b8c06ce426df71b1625fc1b2f3e1260f32741f7655aa
BLAKE2b-256 checksum
How to use checksums
2aa5e87089393870c913842d17635b9d9edf5d69bffe81cee4f1ad954c73b1f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl

Download URL ultradict2-0.3.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
19a49b7f2489a5ada56badfbe2f736e9e3bf6c707679f06c33fbe354548f8d49
BLAKE2b-256 checksum
How to use checksums
1db7d6db3990365ad420f6a7f151859f67427e648bffcacdc81f9001f6b0b10e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL ultradict2-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Size 501.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e1da3649dceb3378fdc88c8440cbe5c039b29e35dcff701a7e71cb4564d6d622
BLAKE2b-256 checksum
How to use checksums
5d5642ae5df2c9489688b8f707e23fa12e0d7dbb7666d1b0ce0d3f103cb7cd1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL ultradict2-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 510.4 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2454c5799d7e9ee452c2ec602be8fdda776ce77bc081953b2225f49cdb211d26
BLAKE2b-256 checksum
How to use checksums
c0ad33974f598e73636056883f7ebd55b830bf8bdb833e999047be08e199d482
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / ultradict2-0.3.1-cp311-cp311-macosx_10_9_universal2.whl

Download URL ultradict2-0.3.1-cp311-cp311-macosx_10_9_universal2.whl
Size 692.2 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
25256c7c11802a61327b2ff91be249a9840350d854d61a72c03ecf24dbe66bb1
BLAKE2b-256 checksum
How to use checksums
c248ad5d946aa1fa8552445176f62aa3c2e183f6bf5f872e65b0aefd616ae413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Security for UltraDict2 0.3.1

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.

Full provenance

All 49 files in this release have been uploaded with provenance metadata.

Select from 49 files

Attestation for ultradict2-0.3.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

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