Skip to main content

pycedar

version python license

Python binding of cedar (implementation of efficiently-updatable double-array trie) using Cython

日本語版の README は README.ja.md にあります。

Official URL of cedar: http://www.tkl.iis.u-tokyo.ac.jp/~ynaga/cedar/

Requirements

  • Python 3.9 or newer
  • A POSIX-compatible 64-bit platform (Linux, macOS)
  • A C++ compiler, when building from source

The extension is tested with CPython 3.9 through 3.14 on Linux and macOS.

Why a double-array trie?

A trie encodes the keys into its arrays, so it does not keep a separate string object per key, and it answers prefix queries that a hash map cannot.

200000 random lowercase keys of 4 to 16 characters, mapped to integers, measured with benchmarks/bench.py on CPython 3.13 (Linux, x86_64):

builtin dict pycedar
hash table and values 13.43 MB
key strings 9.73 MB
node array 2.35 MB
tail array 2.06 MB
total 23.16 MB 4.40 MB
per key 121 bytes 23 bytes

The trade is real and worth stating plainly: a point lookup costs roughly five times what a dict lookup does (61 ns against 12 ns on the same data). Reach for pycedar when the key set is large enough that memory matters, or when you need prefix search; reach for a dict when you only need point lookups.

Run python benchmarks/bench.py --help to reproduce these numbers on your own data.

Installation

install from PyPI release

$ pip install --user pycedar

install from GitHub master

$ pip install --user https://github.com/akivajp/pycedar/archive/master.zip

Usage

using python-like dict class based on double array trie

>>> import pycedar

>>> d = pycedar.dict()
>>> len(d)
0
>>> bool(d)
False
>>> list(d)
[]

>>> d['nineteen'] = 19
>>> d.set('twenty', 20)
20
>>> d['twenty one'] = 21
>>> d['twenty two'] = 22
>>> d['twenty three'] = 23
>>> d['twenty four'] = 24

>>> len(d)
6
>>> bool(d)
True
>>> list(d)
['nineteen', 'twenty', 'twenty four', 'twenty one', 'twenty three', 'twenty two']
>>> list(d.keys())
['nineteen', 'twenty', 'twenty four', 'twenty one', 'twenty three', 'twenty two']
>>> list(d.values())
[19, 20, 24, 21, 23, 22]
>>> list(d.items())
[('nineteen', 19), ('twenty', 20), ('twenty four', 24), ('twenty one', 21), ('twenty three', 23), ('twenty two', 22)]
>>> d['twenty four']
24
>>> 'twenty four' in d
True
>>> del d['twenty four']
>>> 'twenty four' in d
False
>>> d['twenty four']
Traceback (most recent call last):
    ...
KeyError: 'twenty four'
>>> d.get('twenty three')
23
>>> d.get('twenty four')       # the default is base_trie.NO_VALUE
-1
>>> d.get('twenty four', None) is None
True

Prefix queries return generators:

>>> list(d.find(''))
[('nineteen', 19), ('twenty', 20), ('twenty one', 21), ('twenty three', 23), ('twenty two', 22)]
>>> list(d.find('tw'))
[('twenty', 20), ('twenty one', 21), ('twenty three', 23), ('twenty two', 22)]
>>> list(d.find('twenty t'))
[('twenty three', 23), ('twenty two', 22)]
>>> list(d.find_keys('twenty'))
['twenty', 'twenty one', 'twenty three', 'twenty two']
>>> list(d.find_values('twenty'))
[20, 21, 23, 22]

Nodes let you keep a position in the trie and search relative to it:

>>> n = d.get_node('twenty')
>>> n.key()
'twenty'
>>> n.value()
20
>>> [child.key() for child in n.find_nodes(' t')]
[' three', ' two']

>>> d.get_node('twenty ') is None    # a path without a value
True

Saving and loading:

>>> d.save('test.dat')
0
>>> d2 = pycedar.dict()
>>> d2.setdefault('eighteen', 18)
18
>>> list(d2.items())
[('eighteen', 18)]
>>> d2.load('test.dat')              # replaces the whole trie image
0
>>> list(d2.items())
[('nineteen', 19), ('twenty', 20), ('twenty one', 21), ('twenty three', 23), ('twenty two', 22)]
>>> d2.setdefault('eighteen', 18)
18
>>> list(d2.items())
[('eighteen', 18), ('nineteen', 19), ('twenty', 20), ('twenty one', 21), ('twenty three', 23), ('twenty two', 22)]

using bytes keys

pycedar.dict is parameterised by its key type, which is enforced strictly:

>>> b = pycedar.dict(bytes)
>>> b[b'cedar'] = 1
>>> b[b'cedarpp'] = 2
>>> list(b.items())
[(b'cedar', 1), (b'cedarpp', 2)]
>>> b['str key'] = 3
Traceback (most recent call last):
    ...
TypeError: Argument 'key' has incorrect type (expected bytes, got str)

str keys are encoded as UTF-8 before they reach cedar, so lengths reported by the low level API are byte lengths, not character counts.

using more primitive data structures

pycedar.dict is a thin convenience layer over the trie classes. You can use them directly when you want cedar's raw semantics.

>>> t = pycedar.str_trie()
>>> t.set('apple', 1)
1
>>> t.set('applet', 2)
2
>>> t.set('apply', 3)
3

>>> t.exact_match_search('apple')      # (value, length, node id)
(1, 5, 259)
>>> t.exact_match_search('app')[0]     # a prefix carries no value
-1

>>> t.common_prefix_search('applet')   # every key that prefixes the query
[('apple', 1, 259), ('applet', 2, 368)]
>>> [key for key, value, node_id in t.common_prefix_predict('app')]
['le', 'let', 'ly']

>>> t.erase('apply')
0
>>> t.erase('apply')                   # already gone
-1
>>> t.num_keys()
2

Note the difference between the two prefix queries:

  • common_prefix_search(key) returns the complete keys that are prefixes of key.
  • common_prefix_predict(key) returns the remaining suffixes of every key that starts with key.

Enumerating a trie (or a subtree) uses begin / next:

>>> result, from_id, pos = t.traverse('app')   # locate the subtree
>>> value, node_id, length = t.begin(from_id, pos)
>>> while value != pycedar.base_trie.NO_PATH:
...     print(t.suffix(node_id, length), value)
...     value, node_id, length = t.next(node_id, length, from_id)
apple 1
applet 2

API reference

pycedar.base_trie

Base class for every trie. Not meant to be instantiated directly.

Member Description
NO_VALUE -1. Returned when a node exists but carries no value.
NO_PATH -2. Returned when the path does not exist, and used as the traversal terminator.
root The node object for the trie root.
clear(reuse=True) Drop all keys.
capacity(), size(), length(), total_size(), unit_size(), nonzero_size(), nonzero_length(), num_keys() cedar's internal statistics. num_keys() is the number of registered keys.
begin(from_id=0, length=0) Start an enumeration. Returns (value, node_id, length).
next(node_id, length, root=0) Advance an enumeration. Returns (value, node_id, length).
open(filepath, mode='rb', offset=0, size=0) Load a trie image. Returns 0 on success, -1 on failure.
save(filepath, mode='wb', shrink=True) Write a trie image. Returns 0 on success, -1 on failure.

pycedar.str_trie / pycedar.bytes_trie / pycedar.unicode_trie

Specialisations of base_trie for str keys, bytes keys, and unicode keys respectively. On Python 3, unicode is str, so unicode_trie behaves identically to str_trie and is kept only for backward compatibility.

In addition to the base_trie members:

Method Description
set(key, value) Register key with value. Returns the stored value. Raises KeyError for an empty key.
update(key, delta=0) Register key if needed and add delta to its value. Returns the new value.
erase(key, from_id=0) Remove key. Returns 0 on success, -1 if it was not registered.
exact_match_search(key, from_id=0) Returns (value, length, node_id). value is NO_VALUE / NO_PATH when not found.
common_prefix_search(key, from_id=0, max_size=-1) Returns a list of (key, value, node_id) for every key that prefixes key.
common_prefix_predict(key, from_id=0, max_size=-1) Returns a list of (suffix, value, node_id) for every key starting with key.
traverse(key, from_id=0, pos=0) Follow key from from_id. Returns (value, node_id, pos).
suffix(node_id, length=0) Reconstruct the key ending at node_id.

max_size caps the number of returned results; -1 means "no limit". from_id scopes the query to a subtree.

pycedar.node

A cursor into a trie. Obtained from base_trie.root, dict.root, dict.get_node(), dict.nodes() or node.find_nodes().

Member Description
id, length, root Read-only position information.
key() The key this node represents, relative to root.
value() The value stored at this node.
track() Returns (id, length, root).
traverse(key) Generator yielding (value, node_id, length) for the subtree under key.
find_nodes(key) Generator yielding node objects for the subtree under key.
get_node(key) The node for key, or None if it is absent or carries no value.

pycedar.dict

A dict-like façade over a trie. pycedar.dict(key_type) accepts str (the default) or bytes.

Member Description
trie, root, type The underlying trie, its root node, and the key type.
d[key] The value, or KeyError.
d[key] = value Register a key. KeyError for an empty key.
del d[key] Remove a key, or KeyError.
key in d, len(d), iter(d) Membership, number of keys, iteration over keys.
get(key, default=NO_VALUE) The value, or default.
set(key, value) Register a key. Returns the stored value.
setdefault(key, value=0) Register only if absent. Returns the effective value.
update(key, delta=0) Add delta to a key's value, registering it if needed.
clear() Drop all keys.
keys(), values(), items(), nodes() Generators over the whole trie.
find(prefix), find_keys(prefix), find_values(prefix) Generators scoped to prefix.
get_node(key) The node for key, or None.
save(filepath, mode='wb', shrink=True) Write a trie image. Returns 0 / -1.
load(filepath, mode='rb') Replace the trie with a stored image. Returns 0 / -1.

pycedar.__version__ exposes the installed package version.

Limitations

Values are C int sized, and two of them are reserved

Values are stored as C int, so they must fit in -2**31 .. 2**31-1; anything larger raises OverflowError.

-1 and -2 are cedar's sentinels — base_trie.NO_VALUE and base_trie.NO_PATH — and every writer rejects them:

>>> limited = pycedar.dict()
>>> limited['key'] = -1
Traceback (most recent call last):
    ...
ValueError: -1 is reserved and cannot be stored: ...

update() checks the resulting value rather than the delta, because a perfectly ordinary delta can still land on a sentinel. When it does, the delta is rolled back and the stored value is left untouched:

>>> limited['counter'] = 1
>>> limited.update('counter', -3)     # 1 + (-3) == -2
Traceback (most recent call last):
    ...
ValueError: -2 is reserved and cannot be stored: ...
>>> limited['counter']
1

Every other value round trips, negative ones included.

Before 0.3.0 these two were accepted and silently corrupted the trie: -1 made a key invisible to in, get() and d[key] while leaving it visible to iteration, and -2 ended every traversal early, hiding each key that came after it. If you are upgrading and were storing either, the values were not being read back correctly in the first place.

Keys cannot contain a NUL byte

cedar keeps short key suffixes in a NUL terminated array, so a key carrying a NUL of its own breaks that invariant. Such keys are rejected:

>>> keyed = pycedar.dict()
>>> keyed['a\x00b'] = 1
Traceback (most recent call last):
    ...
ValueError: key contains a NUL byte, ...

Before 0.4.0 the write was accepted, and it did more than read back wrong: inserting such a key and then inserting one that shared its prefix corrupted memory and crashed the interpreter.

The serialization format is platform-dependent and unauthenticated

The native cedar .dat format depends on the pointer size and byte order of the machine that wrote it, and it carries no integrity checks. Only load files produced by pycedar on a compatible platform and obtained from a trusted source.

I/O failures are reported through return codes

save() / load() / open() return 0 on success and -1 on failure instead of raising; check the return value.

Running out of memory is the exception to that rule: save() and load() raise MemoryError rather than returning -1. A failed load() leaves the trie empty, because the previous contents are released before the new ones are allocated. The instance stays valid and can be reused. See pycedar/core/cedar/README.md.

Development

$ python -m pip install --upgrade pip
$ python -m pip install . pytest
$ pytest

To rebuild in place while iterating on pycedar.pyx:

$ python -m pip install "Cython>=3.1,<4" setuptools
$ python setup.py build_ext --inplace

./clean.sh removes build artifacts.

Benchmarks

benchmarks/bench.py times the operations pycedar is used for. Run it against two builds to check whether a change actually paid off:

$ python benchmarks/bench.py --label before
$ python benchmarks/bench.py --label after

It uses rich for the table when that is installed, and plain text otherwise. --help lists the knobs.

Releasing

The version lives in a single place, pycedar/VERSION.

  1. Update pycedar/VERSION and CHANGELOG.md.
  2. Commit and push to master.
  3. Push a matching tag, e.g. git tag v0.2.0 && git push origin v0.2.0.

The release workflow verifies that the tag matches pycedar/VERSION, builds the sdist and the Linux/macOS wheels with cibuildwheel, and publishes them to PyPI via Trusted Publishing.

License

pycedar is distributed under the same terms as cedar itself: GPLv2, LGPLv2.1 and BSD-2-Clause. See the license files bundled under pycedar/core/cedar/.

Credits

cedar is written by Naoki Yoshinaga. The copy vendored under pycedar/core/cedar/ carries local modifications. pycedar/core/cedar/README.md records what was changed and why, why the 2022 upstream tarball was deliberately not re-vendored, and what has to be re-applied if anyone syncs with a newer release.

See CHANGELOG.md for the list of contributors to each release.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycedar-0.4.0.tar.gz (250.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pycedar-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pycedar-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pycedar-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (985.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pycedar-0.4.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (993.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

pycedar-0.4.0-cp314-cp314-macosx_11_0_arm64.whl (194.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pycedar-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl (201.8 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

pycedar-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pycedar-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pycedar-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (992.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pycedar-0.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (992.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

pycedar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl (193.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pycedar-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl (201.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pycedar-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pycedar-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pycedar-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pycedar-0.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (996.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

pycedar-0.4.0-cp312-cp312-macosx_11_0_arm64.whl (191.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pycedar-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl (198.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pycedar-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pycedar-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pycedar-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pycedar-0.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

pycedar-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (199.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pycedar-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl (206.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pycedar-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pycedar-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pycedar-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (998.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pycedar-0.4.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (998.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

pycedar-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (199.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pycedar-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl (206.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pycedar-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pycedar-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pycedar-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (995.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pycedar-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (994.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

pycedar-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (200.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pycedar-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl (207.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file pycedar-0.4.0.tar.gz.

File metadata

  • Download URL: pycedar-0.4.0.tar.gz
  • Upload date:
  • Size: 250.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pycedar-0.4.0.tar.gz
Algorithm Hash digest
SHA256 9715aa3cc3879f92477abfea08684b3670f95c474e9c3b39c35739a4534a9a2c
MD5 f881bcb3e055876bdc17335569e3a3a8
BLAKE2b-256 26e959c410f4836ae5f7d69f123b615bfd35468b2a62b906f658ecf287a4d87b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0.tar.gz:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 63a138608639a1504c58553abd7a75f59076e5a41f7f74396ac3a1ec988fce99
MD5 eabbd5c952ef9ad53303cf3b9308182c
BLAKE2b-256 d5ed54d7374f1d4160646b3cdb8f8da5964c94b611166e1e8ba7a461f58e9700

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 39904a9025c3e7f5537f7643ec4e78f82f522478d324b8ed7003bd433500fbb6
MD5 34fce4db61d773af90bb200269080fce
BLAKE2b-256 948465930fcc0b02ddb19f908f48aa92a2552d09736b2983ba5422a39d6b2062

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6a921b3fe1eeed8f9e2fbea008530db009e434664d03e7656d2996eeba80aee
MD5 0fce8d5755437e36f1379fba9bf6c56b
BLAKE2b-256 b5212156c6d50576d86c2f7ee7fc744ec5464fa318d84ba5f35c32a281b4e834

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c132568206b6d3a995dff0956d386f505cbc5a01ad52bbb67534723eedca406b
MD5 b08b934840ceb2a329b73e7929a145be
BLAKE2b-256 4c0bb73e607ed7dc5acd40252d54d032be758fac9f97c3213e39c75c46afbbd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8df6441a7c0dd15046698666cb43384c7fb93ddd71a2f9ba80c91af95283c904
MD5 15e0e9f940fe819a62ff5941eb82bf0d
BLAKE2b-256 6d5eec75bed1373854688625898ee16ec4dd69c81c8cd4b4f0d0442fb679a90d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f8bbe95f3efe472f0e31fbefbaa758eea9321b4c80ffa00ef87e32785eea2dc3
MD5 e6abd6effdd0733e800a467da95fcc21
BLAKE2b-256 afc1fe7d1959848a1fd956df42a70afc16705d203810ff41979514b7b74ed895

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7ab54a057056a466874cbb4dd730f50fdca9b1a1ceabddcc757fe0d61b58601e
MD5 ebbe4b1293958f82f682d67d1ba197cf
BLAKE2b-256 b402f60b461b36995df394bf380aba04befafe764e4e39cca8da3c54e8f60179

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d530a8f2ff4e65b6ae3290ea931030040949d5ef9f017644440283b16d752fa
MD5 b63fac248411ef36faece18eac02edf0
BLAKE2b-256 08279ef337461dea00a2212e99024e3228f6f2f963678c306003520c5a21a07f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19a4aea6628a65b6646536d2ac927152120db57118070f9ab4d6a883d1225a09
MD5 0246a2a427cfb18b9115775e386ae349
BLAKE2b-256 0c3436a23b3569ed4dc2d99abd057f6fbafa637c77381d14b17a6bafe645df4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 96654070c811437a7114006760cf89ed1bd9c1ff9d92fc37e8b3c63c96ba8a21
MD5 73efb4348e5565bbb4c77dd3a0193209
BLAKE2b-256 0ed30fd0b2027ca5eee1e884e16bebe0616fd5f4f4c7cd91ce11b560d529eb62

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ceef5fe3e3c53f1071c6aa69369ecbe946e532744a0218762d676419b28673b
MD5 3c267e52005105b8648e58b2d826c9d9
BLAKE2b-256 ade3632a78c1a0c9f580817b23e7582916b0bd6b3c467b14b3c6955c12f2406a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3b8cca20a67857eb1449df3bf4c50d9b446a0ad9dc8d4c5ead09601b46c223f2
MD5 224e2dd1ca6c2b44375c11f58d1c29ec
BLAKE2b-256 3bf1383395b9c1b9f2798b66426c180f54da2f4d97bb8418aa704812b6dc15b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4f5808631a54a1ec00079a8d614c056ff829a87e53ee5753c1c8202f8b0f0816
MD5 776fd3f8c0d5b8cd3bed7cc1179d3da1
BLAKE2b-256 c64543a23c3d62097f1a2080f8a9fc9e398038f0459f5e88e10f443de6dee647

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c213c29162b5101fd06a2cc1410473d4e507f19cfadabb9dba06f6ab1d5e9781
MD5 3f14b9e158c5ca652fa886c1b088543a
BLAKE2b-256 6b491c0f645639e77c57132d6af1f5763824eba2c95645e94587b61824007f2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61f0d9fd802b446faed07cc48007778285056ae358d7693798914e4e57ab8842
MD5 6b513f60dfb3ff9c5f1b05e12e29d79a
BLAKE2b-256 5672b3139df98a44f09142f071568dfa427ef8426139a95f328e3b32f5a71b77

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ba55609c00f265a48acf2af9e1ae5085e6e7a0f62b1ea7cb3373c67b40630da3
MD5 a242146c782c8ad9fb6d3a73bfc95866
BLAKE2b-256 c9f9618239b1d083e044adc32292a3c58d57d446fc7204b285f1b4b4621e4f00

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1403dff421d7cacd546c34e86a0d0a935198f5914dce237bf196cd158573008b
MD5 1798c79538f6054c24358b8c0fa31ea3
BLAKE2b-256 e94a6045812e99c65b59420b1fb01fc06afe58c4bd976e8979d8eba019d300b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0763b564e1457350178514a21c09738ff49ef80ba3f3b730e75b00e8b5ab2d37
MD5 ee3a9f1964a56eb9cd6b58e936cc30c5
BLAKE2b-256 b4d25d09594dc9b9fc71f21d2f5516d103773db5cbe467d82d5b3535954e1bc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95b3a964ec96b9fcd441b43eb357f36857fdbb94e79b7bbedc72df43744ca8da
MD5 5f7cb06833713ecff9e931e0f20f36b1
BLAKE2b-256 c3188f1bd36ddb5fbf58068bd92fc49f2aaeae46734c7d9e02be7695bfc27739

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bc48abc0a1bc0dfccbe9d170b6b803f7a65aa48befbc2519a7d1bfa44a354ab6
MD5 02b75590a800836594a62c2397865f3a
BLAKE2b-256 5b2994eff68dbf0d5d4b248afbf6a7a20a6497c3b042c02588d7e79cf88038c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 156a73f9e25a948d05d6599d9fe00da80a22f1c9ef1658d1e3a3a6c888499e52
MD5 4fe90432cddc516d9c654ab39175cc0a
BLAKE2b-256 2a1d6add11cde8dda1a17d2e8c18422c6308b6456547c2b8af27b783c5e3e898

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed474546f29d3e0b5f15dcce1b8efdae03f746fca7533cd15a5d15c558a4f057
MD5 810dfdf97749d2711d25596af867fbb4
BLAKE2b-256 a9c9cfef6e9604b1ed6be020452cc07d295af15298b7c0e62436c460845872bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00de48a3d6341b814d4db5a55fc81f5aa82d312c23b21e17a116cd4245a42955
MD5 47347e49691fbba2ddfe0a8d030d945e
BLAKE2b-256 9947c6ca2f9d4b508cf60b755324e4cae51d0dd1369353beb2caecb1bf162881

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7dbaa40e012988dce9897212de218bdb708f05e8ccab61978eb3f0f98882e4ef
MD5 d5e2f8850d9ccfa718800d6c6cc8f09c
BLAKE2b-256 93deb33514eb444f5a65795488e88a0b964f9aeeee43102b2f38a9c52adac7c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6e4de7d82efcd4987a18a5a9e158fd4b8a55b4ac58cd2d8d74066af72e951695
MD5 e66d1bbcedf97a32af182dc372f41608
BLAKE2b-256 94c8d719351a8549282b050c2d85b76d67bcc96dd2cdc69416c1a5b773f1c64f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 302e8055a7c2f7633284b310357446acea5ea40f9b318ca806d62410d2885143
MD5 3fbec93745f79f45c4c7689ce5dd9bc3
BLAKE2b-256 a1ad9e8ad3a2c712d16a3427f976bb92ebdf7109090df6ef29a128941028ad28

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c3eb5496fb63598fe2f23f71405c64b7f32a6ea06584936b9ec84e2041e7208
MD5 f658b524d781489bce40d8cb86f6d79c
BLAKE2b-256 46d34378673f9619077ee3cd14ba20fe6233e66037778369c1b10f4e9eba15da

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 022de5ad2803cce9f214c4e1152c09c74a4f4f61bb45a531e92be90d62e2df6c
MD5 5f722d21b834854c15da554600dc0388
BLAKE2b-256 b836b011e657acd8606c95acca1e526f888dbc2e19d862baf66fbaf7f39f0e21

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 facb5c626072a80c0a94ecada9c508eabd8da0e1510dfb0460332807894d5319
MD5 332045c7f2cfa2932b809d4017632941
BLAKE2b-256 eb95ea5f9e8a72b362069cd6d290dae9ed5c3bbffc105d0e87133ade353b08fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7bc4375c8437dcb395fcb8cb615b54938ed0bb77685247875cf359229df2f60f
MD5 97391c8dc1528b542e379daa9fbe360b
BLAKE2b-256 21576202d952469dc46dee1a8914d15e78a0efac2d51b32870bbd22ffe72ebee

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 399ed8072bf09f2024f46887d1e42c2f4dda4161ebbaacf901117384ab305125
MD5 c351c54c63fa83ab272870aff753394f
BLAKE2b-256 24a97390a3f7e327e14c7d1c06071048c7c42c6f6016f959281304a02e14470c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7593dedf7d05b9bd2ae51fd7e3ea7b2e06055ef049a7341ee2eee2583df013e0
MD5 43edd50357f8f80d12b4b6ed27b309e6
BLAKE2b-256 7c6431a7b2ed864847d92e571321881b5889361c31af2a246c646b0e1bd46d7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a61ccf9c6b1ef29239654d030f932fb1117d7d4dd991df68f2456c0849322fb6
MD5 c6af0ae3e705197724d42b00145d5b9b
BLAKE2b-256 76cc68b1eff47204e5f642afd95298a0a2f2ce45b4c9f3b91f54f8bf57cff2f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 77a553a580002a35d059c6e59f60237a7cbb28f2c92c239a181b3d9b23133ea5
MD5 a5c827c9e0d0d919cd0cd886d9cada5d
BLAKE2b-256 a834f98fdeac189b6be2ee1120cfd02e8ef48a4e43bc0f871f02fa3174bc5f88

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45f860da12a2a11c6f7891ddb031f1172238d2cee29414894933f621b94c8687
MD5 c245cf5fed3913d23fa2b1752414e3ab
BLAKE2b-256 68a8e93f666199a88476c2630cf27c6e8f38d0b43c3f436cfdedf9808520a012

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycedar-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2cbae7656fbc3a5ba17ce80e484f7a7bcac48a70e4d3d375019e2e802cc24d19
MD5 dace3ba250d686073b7cb5f80a6c6203
BLAKE2b-256 1498d6f6d1cf3da26d6031d2852ae20667fe56e9d24399c000a5620edc7c8a5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: release.yml on akivajp/pycedar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.6.1

55 files

0.6.0

50 files

0.5.0

37 files

This release

0.4.0 This release

37 files

0.3.1

37 files

0.3.0

37 files

0.2.2

37 files

0.2.1

37 files

0.2.0

37 files

0.1.3

9 files

0.1.2

9 files

0.1.1

1 file

0.0.4

3 files

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