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

Type checking

Type stubs ship as the pycedar-stubs package (PEP 561). Type checkers and IDEs pick them up automatically once pycedar is installed — no extra step. (型スタブは pycedar-stubs パッケージとして同梱されるため、インストール後は 型検査器や IDE が自動で API を認識する)

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)]

The image can also be kept in memory as bytes, and the dict supports pickling and copying:

>>> import pickle, copy

>>> image = d.dumps()
>>> restored = pickle.loads(pickle.dumps(d))
>>> restored['twenty']
20
>>> clone = copy.deepcopy(d)             # copy.copy works the same way
>>> clone['twenty'] = 999
>>> d['twenty']
20

>>> d.pop('twenty two')                  # like dict.pop
22
>>> d.pop('twenty two', 'gone')
'gone'
>>> d.popitem()                          # removes the first key in sorted order
('nineteen', 19)

popitem() returns the lexicographically smallest remaining key, because a trie keeps no insertion order — this is the one place pycedar.dict intentionally differs from dict.

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.
dumps(shrink=True) The trie image as bytes. The layout is byte-for-byte what save() writes, so the two are interchangeable.
loads(data) Replace the trie with a bytes image. Returns 0 / -1. Unlike a failed load(), malformed input is rejected before the current contents are touched, so the trie keeps them.

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.
pop(key, default=…) Remove key and return its value; raises KeyError without a default when absent.
popitem() Remove and return the first (key, value) in sorted-key order. KeyError when empty. Unlike dict.popitem(), which pops the most recent insertion — a trie keeps no insertion order.
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.
dumps(shrink=True) The trie image as bytes; interchangeable with save() files.
loads(data) Replace the trie with a bytes image from dumps()/save(). Returns 0 / -1.

pycedar.dict (and the trie classes) support pickle, copy.copy() and copy.deepcopy() through the same serialized image.

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.

The same applies to dumps() / loads(), which use the identical layout, and to pickle — pickling serializes this image, so pickles are only portable between machines of the same platform and integrity is not verified. (シリアライズはプラットフォーム依存かつ改竄検査なし。dumps()/loads()pickle も同一レイアウトを使用するため同様)

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.5.0.tar.gz (270.2 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.5.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.5.0-cp314-cp314-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pycedar-0.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

pycedar-0.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

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

pycedar-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (212.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pycedar-0.5.0-cp314-cp314-macosx_10_15_x86_64.whl (218.1 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

pycedar-0.5.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.5.0-cp313-cp313-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pycedar-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

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

pycedar-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (210.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pycedar-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl (217.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

pycedar-0.5.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pycedar-0.5.0-cp312-cp312-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pycedar-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (209.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pycedar-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl (214.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pycedar-0.5.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pycedar-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (217.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pycedar-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl (223.0 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pycedar-0.5.0-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pycedar-0.5.0-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

pycedar-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (216.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pycedar-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl (222.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pycedar-0.5.0-cp39-cp39-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pycedar-0.5.0-cp39-cp39-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

pycedar-0.5.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

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

pycedar-0.5.0-cp39-cp39-macosx_11_0_arm64.whl (217.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pycedar-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl (223.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pycedar-0.5.0.tar.gz
Algorithm Hash digest
SHA256 97579f85508434ee2c30ed7b7ed98bde63bd0c61503576df092a444b79c00d17
MD5 75985e00b47cd565b22a99fac45a0ca6
BLAKE2b-256 26c8fbfe32ea3b280fa2db9e7a2b5969f00b9fec625781d6f845c4a135a38fa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c7dd2bf876135b16d9f982e650b728fde213a3c1e3e197dd909f9d109d0b0560
MD5 c2918cc3e892d2004a425cf40118e741
BLAKE2b-256 a01cd3ec202a273d50d383dd371539dcad87910659e7409d475cc7d337626cb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f1b027e442db3567d92920f69a57b8f4b36be957891f7edc35739489d625efaa
MD5 42643c57ae8aee87e9235b4afdc51b3c
BLAKE2b-256 6df13c3ac89094afec79484b231153748edd9e825dbd4ddcaa2ce660d2e5f310

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 189de998f7fe1da0bf9bce7e02dbe9d3a173d4386ce16b4de48ca33b49101298
MD5 2b0c792a9ddb6b1a3e4925c24ad47e38
BLAKE2b-256 df506ba5d20ccddb8372be7c2b9bb84020d63e35fb031abbf258379f09645428

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2ab3ccb785cb33845b50a2df9369e7b7ec4a8a7afa933f3601fbf6be2bcfe0b
MD5 90cb07dfa7199f1a575da93b16848bb7
BLAKE2b-256 31c0698b7c7e90dd25e86dd1c5924cf80b7980a12f8e24e7efb3502f6382a7d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08b977b26b94bcc1d42c5f474d39c84d51cbe1493852ef2388994dbaed77fcdb
MD5 77012e969f1a00851ad67b9dad6082bc
BLAKE2b-256 16d98aa176dc31c3fe820674e827b9b1e5a2948886dc701326623b35e096d9b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7233cdc86e4a53ef11e491ba81995e8d01d13f1e700a03f348643e483b9d4bd1
MD5 da669d415b513ced3809c83b257cdfb1
BLAKE2b-256 04759f9db6d3d082e108b83edbf1cb7b8316a545cc0cda8afdcb6df7cad382fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a2586d76643f886e6e8b0b8035cbe458f64342be62a758ec6ff54f6c6a8d16c8
MD5 4c12714130000d20476484aad6b67f5e
BLAKE2b-256 cf4efcdf92f93ad28de47ed2c94e9587b4e57a9338e0aa610bc8ee291ae6e755

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b586617bd736536d9eae122360a81b2ba27237cbf31b6805e207c4dc801532c1
MD5 dcf8f830f50ded1011105fb34c754d65
BLAKE2b-256 d6bdb0e6587f0dd272f7565032fdf7a5458a5d82f3257096d9d7cb34c588912e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 966bd89da60d44e834add045285457051c99e33662a7527c690e261ebb0caf1b
MD5 f44ddf04c75df236c381d2af3704a0cb
BLAKE2b-256 9873603c23a88fa491a55155f5c073438ce34e492c5dce43c96ad4532968d704

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1665521791e265f797edf239fdf9c8612328d02a296619552b882f488fe3c775
MD5 0a3c315f71679a2c7cc224a420feda81
BLAKE2b-256 1d05dc5412c945acceb797f6015adc009acc2b4f29741bb8620d003e6596ef9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 670c77700d98ad476fec438ed3c7a2477d7280dd9b1f2cb4260aaed70e9479f1
MD5 92140c2eac9f5181a69613f59be9c37a
BLAKE2b-256 941df3ad7e2a51b6dac834940d02065232273967d3057e157bcc9de38bb17ca4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2b6146775e2acf3f8717a46f126f7efc34475a3b43b46339af6be33529f6c73b
MD5 5edec483b5ee3bb3263dce8eb780c5cf
BLAKE2b-256 a3b7ff3397c06a3e3df305d04bea9d6aa25dcc72e831aaf19707eeb72f77a352

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 829dd52d33e49b08bdaf0e462e03cfa0d5cc820d8ad1d1bee51a51cec990f005
MD5 39415bb844c23eff4c40b24addfea5eb
BLAKE2b-256 396e9c3af262f313f7dc90f1237976f1baffb118d54113c9bdd6b543c9c684f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0c48632ffa0cc48b3dcef7fb35e55837592615e5c21fb901619009723ca0f8b8
MD5 5de52b5336c5a9a484c2ac04334d6508
BLAKE2b-256 c9a793749605cc2382794e0ac288f6559a2fa0d7fa3b9428e50ada8fed22a42e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2e2865e2e7edf0bff2157bf3959e0b1b6c21b76a4c91843931ab0c41a6ee23b
MD5 bf7860963441d40e63cf85cc677a0b8f
BLAKE2b-256 f202c33c409902874b844f7dfabec6ba022991a8ce9655aee2a5c6e71b425f86

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 79e83f8b425fdd4f9876e25506684dddd31ee9219a04ba618c99163bfc1a6c8f
MD5 f66bb3487072961043324ae01a2e2d71
BLAKE2b-256 058418c763e050a2fec91980166e02be964d56fa4258dd970b01f18819e77983

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94321b0df59061bced6fc037c4dfb28b3d712fa45d20bac28ea5738b0d4688e3
MD5 e38c345a480596df4f4566e23c6b52b5
BLAKE2b-256 11f2d42dd258d2daf5b7561c04ba130b4fba09241aa93e0f5deedd871d88503f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a0164a95416fe561064cfb9a09ffbc8b5b6e18a2d6503b044e626bf2e043d6c9
MD5 d83040b8c83877760380e65ab8b7436f
BLAKE2b-256 a045aab9a5498c0dbd4087032b1a5d79c78ede4ad50de2db5c4330691a2005e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 df45f591dac4c8e5c0505e92837c36683c545d3984bac6f2dd96c78bcd2cc436
MD5 481dcd2c377279da38e6ea0fb7ea7933
BLAKE2b-256 7978f21a4c4ad22b039340a5eb918449c0202fe5c96a6160fdfa36cb3f78452b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0709fff0d8cf9d6672fb148a19e561a5d11f5c361cc35248821dce948a764554
MD5 f0e5bf30d815184a9cf16da0f0e6f36e
BLAKE2b-256 d716193c4f65d76f2bbf6322709911a0932c3d315be50cd66a7acc5945af30b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 992d04efd360e21cf5393e1f34c63e5311c1717ac6bd659521d6f5cedfb1c79e
MD5 1926505da835d72eade58b6a779ef2d5
BLAKE2b-256 3dc5138cc940adb2ffeea91ac0ac01b04fba0f09b1c72e187fc7d6f3855a8226

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd69c9788b024171fb7d60096faf3ba50eb5e46a2224248212ab0d08a989365c
MD5 0b3d7985afc389e182e49123ed9da34b
BLAKE2b-256 29fe8179ba20d6ac6e3d37f1a46c78250195864009053b28a3820fa04751919c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64106b5c2043d1bc3e5b8e93fd91d6bfe9e3d838c2455f3e7693908b9312b9c1
MD5 624c70d8d72443d7b747508cd806cdb5
BLAKE2b-256 7be6aff9fb2dd29c5028051c17a55eaa61b1925aa204315af804a7f6e527f356

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 399f719e57c3846ca856d7165f1b8ea9f8c5289fec72aee5997ccf8bf759f169
MD5 92287938fb025104b7129193e0e10e33
BLAKE2b-256 75c6504f1314d563c068ff0bc3c244b1757aaff28d09a0d66f3b2420fae708eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 636421730c5477a63bcfa660e2ef86884f039946a354b9e0ac02167e107cb21f
MD5 246a0c1e074406d2638cce180dc8016d
BLAKE2b-256 29b8eea22487d5d9e539133e44a56de08d2aa8efc75c553f1a6186f80424ebf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 80a8bfcc1418f1112b696a16d299cb4644e051feecc04d3c2d9afa0558debe5f
MD5 6f158b83810266d429336f1f64010ea6
BLAKE2b-256 e1aad8423fcb1490b546e276fce518cfbaf8284535801c5c728a56f87a990cc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc46564e19eb9073fc57fce6ca63ec959063ae2cb9c54c88b3be3a42f0bed5c3
MD5 aa992b16448471ca85059a212c97de8e
BLAKE2b-256 eba6913f5db4fa76326edaa674e48e130573a9904bd43b97eeff500862a05024

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6937adf066e2c6ffa959e149af7a0241681e17ba5447bc2b86e19ab051c694cc
MD5 99d5b871edcbc799ff1070e33cd7cc9a
BLAKE2b-256 550eeb25935d856bbd7a7f871f1478c39172eb800df68fdb3f2306a1ef946e67

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ecf2cbbb10e574efefe99c955fec551e6c5fdc273c3e6801ba180b8d833d731e
MD5 926e0e51455ffc0ed9e7301d6ef2b57c
BLAKE2b-256 212a2b9fed1e8ced1029e8fcfae5a8cbaec1a2f8f6e364adef928d9948033b2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0cfc0a4a85c0b3eff39b27ea59ca3de2447f6a1d993452cc708ae8efaf58f1d0
MD5 dfe33d5442358f34f442f930b06924fe
BLAKE2b-256 6b50ffae930766f9878bd3fbaaef586ff00424af492ee199be039cc640d04ff4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 759f997e99a8830633d419f3d8f5c19beef63e553da553006ddfc64bb1ba3bee
MD5 9976697e8df59c2a5867759c5e1452ea
BLAKE2b-256 19eab162a05b8b2935b0a3427ba3ea27b3a6662f0d2156ab8786f44a92c49aab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2cbf5e3acf21abc52f53c74b8a57d1a384d1a0c1dc30dea1e7f88aa53d8f9705
MD5 7b31778766e88f21011f46cd90bb7717
BLAKE2b-256 64fd0c8eb3ff1e43c3503ea9b127b6309575ae99464d7490940ff386110f6b42

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf6f3e096291a437b2edbc0f57607d6de8b7274e873ccce4b98ae9454a118ab2
MD5 aa111a44499be66cdc79d83d215238df
BLAKE2b-256 86e3233d82d93513123c0b640020ac4394072c7f5737e1be1cffaa04b4660b3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4e93f5dc8d0f0a8a102e7067192c804849d801022037005dc78d89a2e0e1dd2a
MD5 7752023b2320ee93ec68fe3a12c7eec4
BLAKE2b-256 48187b5ded57e58dee9017a29e5d54ca0824f98542655863009a8e54b3809fb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72d3efe136fd70a22e19df2b6007a19c488e6b9719cb933e506bf5c953dec64e
MD5 18d71ee087c5a09e0471ca9ec86af925
BLAKE2b-256 f4a587fe00c79cff8e3d0d59f1111c99dc6b1f3130f5602b50759877f7c40c86

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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.5.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycedar-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 976a9f3440cdfaad5ef0363ba1758f23b617b3820a0647aecb0cf0c671d276f5
MD5 9cb1942b72295c537b61e3f5c200b748
BLAKE2b-256 31aa4d2cc7fc552e9177369a549798275f42086d977475fe69cfb5b9ad6097fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycedar-0.5.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

This release

0.5.0 This release

37 files

0.4.0

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