io‸cursor
A zero-copy
file-like wrapper
for Python byte buffers,
inspired by Rust's std::io::Cursor.
🗺️ Overview
iocursor.Cursor lets you wrap an allocated buffer (i.e. a Python object
implementing the buffer protocol),
and interfacing with it through the API of a file-like object. It shares
some common points with io.BytesIO
but with the following main differences:
- zero-copy VS copy:
Cursorwill not copy the data you give it at initialisation, whileBytesIOwill. This makesCursormore efficient when you are using it for read-only operations. - static VS growable:
Cursorwill only use the buffer you give it at static memory, whileBytesIOwill use its dedicated, growable buffer.
🔧 Installing
Install directly from PyPI, using pip:
$ pip install iocursor
Pre-built wheels are available on Linux and OSX for all supported Python3 versions. Otherwise, building from source only requires a working C compiler.
🧶 Thread-safety
iocursor.Cursor instances are not thread-safe. Using several Cursor
instances with the same backend memory only for reading should be fine.
Use a lock when interfacing otherwise.
💡 Examples
- Use
iocursor.Cursorwhen you havebytesyou need to pass to an interface that only accepts file-like objects. For instance, pass a PNG image decoded from base64 to PIL, without copy:import base64 from iocursor import Cursor from PIL import Image imgdata = base64.b64decode("iVBORw0KGgoAAAANSUhEU...") img = Image.open(Cursor(imgdata))
- Use
iocursor.Cursorwhen you want to use the file-like API to write to a buffer of known size. For instance, retrieve a file using thepysmbAPI, which only accepts file-like objects:from SMB.SMBConnection import SMBConnectSMBConnection smb = SMBConnection('guest', '', 'client', 'server') smb.connect("192.168.0.1") info = smb.getAttributes("Music", "The Clash/Rock the Casbah.mp3") cursor = Cursor(bytearray(shared_file.file_size)) smb.retrieveFile("Music", "The Clash/Rock the Casbah.mp3", cursor) buffer = cursor.getvalue()
- Use
iocursor.Cursorwhen you want to do direct I/O on a type implementing the buffer protocol. For instance, initialize anumpyarray by writing bytes to it:import numpy array = numpy.empty(4, dtype="int16") cursor = Cursor(array) cursor.write(b"\x01\x00\x02\x00\x03\x00\x04\x00") print(array) # array([1, 2, 3, 4], dtype=int16)
💭 Feedback
⚠️ Issue Tracker
Found a bug ? Have an enhancement request ? Head over to the GitHub issue tracker if you need to report or ask something. If you are filing in on a bug, please include as much information as you can about the issue, and try to recreate the same bug in a simple, easily reproducible situation.
🏗️ Contributing
Contributions are more than welcome! See CONTRIBUTING.md for more details.
⚖️ License
This library is provided under the MIT License.
Release files for iocursor 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iocursor-0.1.4.tar.gz | 16.9 kB | Details |
Built distributions (wheels)
Total release size: 720.5 kB
Release files / iocursor-0.1.4.tar.gz
| Download URL | iocursor-0.1.4.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
98ad5b336429d5cd38535a805a2cb537e22804c26cf595352f4459150fc68f95
|
|
BLAKE2b-256 checksum How to use checksums |
a5d755f7a6fb6afabb98cae75a7ce4ebdba8364a4bfab5ac58bf73ba505b7efa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-pp39-pypy39_pp73-win_amd64.whl
| Download URL | iocursor-0.1.4-pp39-pypy39_pp73-win_amd64.whl |
|---|---|
| Size | 23.1 kB |
| Tags | PyPy 3.9 PyPy 3.9 7.3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fed703a01bbb1729ecf5f58cfb6e6228ea8d8afab261bc3526252c850fa15c37
|
|
BLAKE2b-256 checksum How to use checksums |
a48fd5f1330ef252a34598396db7c069bd6598e6f91ad55711e36a8d48e5c766
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
| Download URL | iocursor-0.1.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl |
|---|---|
| Size | 19.8 kB |
| Tags | PyPy 3.9 PyPy 3.9 7.3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
67cf3e59f1d29a2fee1488645003d0d5bea094be5d008e050817da900d1f8617
|
|
BLAKE2b-256 checksum How to use checksums |
3777c50f723daaaf0262ede4d5081dd9b8a9005e791f9c2edd0029235eb34544
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-pp38-pypy38_pp73-win_amd64.whl
| Download URL | iocursor-0.1.4-pp38-pypy38_pp73-win_amd64.whl |
|---|---|
| Size | 23.1 kB |
| Tags | PyPy 3.8 PyPy 3.8 7.3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f0ec8157fd44d471819b029f5583b7696198581ab154f3b6afb4251abba3ba48
|
|
BLAKE2b-256 checksum How to use checksums |
0e9ceaeacaaccb30593815f6921452e3368ecfe609ce122af13189e1ba59fe1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
| Download URL | iocursor-0.1.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl |
|---|---|
| Size | 19.8 kB |
| Tags | PyPy 3.8 PyPy 3.8 7.3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
ece32ac5e4bd633dd79ea972a7f87a6a122ccf30317e74f9acc09a8cd706991e
|
|
BLAKE2b-256 checksum How to use checksums |
b9e499769c630f86c6972b4edbdb78812754661592c50233516526701342a8eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-pp37-pypy37_pp73-win_amd64.whl
| Download URL | iocursor-0.1.4-pp37-pypy37_pp73-win_amd64.whl |
|---|---|
| Size | 23.1 kB |
| Tags | PyPy 3.7 PyPy 3.7 7.3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5e327b96a8c27dc7a9369ed4f9e6f88729d8e57c3284d2d77e04a3cbcfe5c647
|
|
BLAKE2b-256 checksum How to use checksums |
afad135ba26167b7e1731fb741620d4f150fe8e847425d4e1e7c969dcf66189a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
| Download URL | iocursor-0.1.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl |
|---|---|
| Size | 19.8 kB |
| Tags | PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
314abb68f01dd726dcf38e3801e8dd407105d4bf59483d3fd96d4db35a0fc830
|
|
BLAKE2b-256 checksum How to use checksums |
918b49229f9cfb06d101a353af0cf0001eb4af8f05c0ea5e88c74b410c4f602f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp311-cp311-win_amd64.whl
| Download URL | iocursor-0.1.4-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 23.0 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
152e1619baab9373f54b6da9b50ef56e432ec1f8e9539199499215e96a89335e
|
|
BLAKE2b-256 checksum How to use checksums |
d21d1d0206545da7f12ef79c50f4b3ae9d17d33cd4a2af548cd191c6ec394a67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | iocursor-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 43.1 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
3eb9de1ea3f766446cf1df06095414b898d0269a9ad1373fd60b4ce807a9acfa
|
|
BLAKE2b-256 checksum How to use checksums |
857e34b87bae3b06efc4e708d82e75b530c3130db5603c6b7c8f8948b1687dc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | iocursor-0.1.4-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 29.4 kB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
dd3fbde34c0b82673fd88c7fff0f39cd5edf1b917450fce68b839af526713b70
|
|
BLAKE2b-256 checksum How to use checksums |
f623a3d54f9b659294dc017d8c8c083d97a5ea07015d180f30d7c81d77c88aa1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp310-cp310-win_amd64.whl
| Download URL | iocursor-0.1.4-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 23.0 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
18592e89e9020cfcb09618c2c2ad6e6725588970760fb2d09842f0e40f6c2abf
|
|
BLAKE2b-256 checksum How to use checksums |
92333f47a81b174bacb95e2f599fb592f51cacef7e6399d98914a28216335813
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | iocursor-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 43.0 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a0e9033be2c3d7ac07f91e5ed98f4eedc0961749a6dbf5cf9b8abd1f81ff9d9e
|
|
BLAKE2b-256 checksum How to use checksums |
b7843532f8daf98fff92687cc72218a15dfa347497de5c38e020c520f9be613c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp310-cp310-macosx_10_15_x86_64.whl
| Download URL | iocursor-0.1.4-cp310-cp310-macosx_10_15_x86_64.whl |
|---|---|
| Size | 20.8 kB |
| Tags | CPython 3.10 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
4e1d50c3d33a88f8c42da7b900e9cb3626b82f4b87b1e0d5217a51ce6c8b62ba
|
|
BLAKE2b-256 checksum How to use checksums |
0a159de063d950435dd60f5d4739f8414fec402825163b37e07ebfd48c2ecd19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp39-cp39-win_amd64.whl
| Download URL | iocursor-0.1.4-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 23.0 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b84a55776255748b8ff439bb8776f5680c13af7bbd1b2ebe5bd2ef037c6b95b7
|
|
BLAKE2b-256 checksum How to use checksums |
816d38e8e6eefac5a5ed0864f93eb6b1a150e68f015cfd13c6fe7957517f8ac6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | iocursor-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 42.6 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
41b7862b26d631f94785db88288e46d5ecb9a218b9da64aca572200bd4843e92
|
|
BLAKE2b-256 checksum How to use checksums |
79e2bd13cb38a11add6cdf51004b92aa1acdfebdc86d76fa4ae77feac277ef89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp39-cp39-macosx_10_15_x86_64.whl
| Download URL | iocursor-0.1.4-cp39-cp39-macosx_10_15_x86_64.whl |
|---|---|
| Size | 20.8 kB |
| Tags | CPython 3.9 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
37758b3b08e2ee79f886f0a8e633ff417c358ba834ac3f1ad64ce85975dd0125
|
|
BLAKE2b-256 checksum How to use checksums |
0c50f70bfbf2a2fe0126d62acc74e98d06795be6402c10a77ec6ae4661f11b67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp38-cp38-win_amd64.whl
| Download URL | iocursor-0.1.4-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 23.0 kB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f9b0e7c43cd91054c2c4e266cd29660ca0a75016595af2e537322d024d6e9097
|
|
BLAKE2b-256 checksum How to use checksums |
3cc3bec6e1f647f6353385fd83c06e3dbc1d21a5f9ce157c955339948e012014
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | iocursor-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 44.0 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0488c929beb723c9f9c000f875675e7b72422e8f07c32ecdca0f2e8a0034d6d7
|
|
BLAKE2b-256 checksum How to use checksums |
709ef501a7e848499b95ecc47e4220c972b9d49c45d857ad24072d7c426dca29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp38-cp38-macosx_10_15_x86_64.whl
| Download URL | iocursor-0.1.4-cp38-cp38-macosx_10_15_x86_64.whl |
|---|---|
| Size | 20.8 kB |
| Tags | CPython 3.8 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
07ee01205680c91f4f8bbdac12705b2eb0f47ed9c6ad7a31a37f10adabd5e289
|
|
BLAKE2b-256 checksum How to use checksums |
d8e6f125c4abb604968744c9448b5705aa65732221ac5e06cecf034fbcf33cd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp37-cp37m-win_amd64.whl
| Download URL | iocursor-0.1.4-cp37-cp37m-win_amd64.whl |
|---|---|
| Size | 23.0 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2e32a156edc0608191548bc728482fc6eb8e4ee3f4ba289fa837360130c784c2
|
|
BLAKE2b-256 checksum How to use checksums |
c5558641a11ce84bf0295525590bfcbae47274e3f54f0a5e39898f75b0d24876
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | iocursor-0.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 42.3 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1f56ea91d08455889e89b23d977071bee9aee0aab20c6bb2b4569ce21b06df3d
|
|
BLAKE2b-256 checksum How to use checksums |
c412f7522e0ce5dc5d15c0864b9773105140fc160007d63542111f8188f10de3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp37-cp37m-macosx_10_15_x86_64.whl
| Download URL | iocursor-0.1.4-cp37-cp37m-macosx_10_15_x86_64.whl |
|---|---|
| Size | 20.8 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
cc263e97b9edb5f685c37466eb69eed7e0f15f655da0e44f3d035fffd6c72a41
|
|
BLAKE2b-256 checksum How to use checksums |
405a3cd865cd2e02bfd732f64ee110f1ad5a85d8b565409264f45924637901eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp36-cp36m-win_amd64.whl
| Download URL | iocursor-0.1.4-cp36-cp36m-win_amd64.whl |
|---|---|
| Size | 24.2 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
17e565545592fd1dcd7f35ffd04cb4505e3ef976fdc4127c1f6bf1ef1fd1157d
|
|
BLAKE2b-256 checksum How to use checksums |
570867ca7fc2d64bbff69ba83e0f3b3b65dcfa81df3aa9ff0f04da689ef108b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | iocursor-0.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 42.3 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1eb655bb7e295fb4bf2d6a8e33eee265d724bae0ae8ae04f733e4da05fa2d203
|
|
BLAKE2b-256 checksum How to use checksums |
52f905115a2e3f1d0a03755d2cc6c545eb660e5b3126f4c361886583c8d5f038
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp36-cp36m-macosx_10_14_x86_64.whl
| Download URL | iocursor-0.1.4-cp36-cp36m-macosx_10_14_x86_64.whl |
|---|---|
| Size | 20.7 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc macOS 10.14+ x86-64 |
|
SHA-256 checksum How to use checksums |
b84d0634aff542a836aedece5709f34d316296da4c88903fed9425b7fa781e80
|
|
BLAKE2b-256 checksum How to use checksums |
3db4ab38eb48262eb6cfe0511c77ed5c65157b9db8c4c6076b8ca798ef315834
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp35-cp35m-win_amd64.whl
| Download URL | iocursor-0.1.4-cp35-cp35m-win_amd64.whl |
|---|---|
| Size | 24.2 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
62c976dbc927d58d9051cf94087b085e1e73b282ec0dbe9946cd8b6ed48ed64b
|
|
BLAKE2b-256 checksum How to use checksums |
3687de548ddf4624c8d176309c3b1e4aebaa37846cbd312ff1e352b74dfa311d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|
Release files / iocursor-0.1.4-cp35-cp35m-macosx_10_14_x86_64.whl
| Download URL | iocursor-0.1.4-cp35-cp35m-macosx_10_14_x86_64.whl |
|---|---|
| Size | 20.6 kB |
| Tags | CPython 3.5 CPython 3.5 pymalloc macOS 10.14+ x86-64 |
|
SHA-256 checksum How to use checksums |
4770a8561248a4febccadd520f7c7e47d6ade2e3f7984a07d284bdc281da4f97
|
|
BLAKE2b-256 checksum How to use checksums |
16d4d6a07fd12e525e57e7c749d68d8c023439fb8b7aecfcc2ed684ab35277e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.15
|