Python implementation of a ipfs unix fs exporter.
Project description
This code has been transpiled from ipfs-unixfs-exporter and has minimal changes.
Usage
DAG-PB, Raw, DAG-CBOR, and Identity codecs are supported.
>>> from unix_fs_exporter import UnixFSFile, UnixFSDirectory, RawNode, ObjectNode, IdentityNode
Given a block store and a root cid, decode the underlying data.
>>> from unix_fs_exporter import RawNode, export, BlockStore
>>> from multiformats import CID, multicodec, multihash
...
>>> class SomeBlockStore(BlockStore):
... def __init__(self):
... self.mapping = dict()
...
... async def get_block(self, cid):
... return self.mapping[cid.digest]
...
>>> data = b'some data'
>>> mh = multihash.get('sha2-256').digest(data)
>>> cid = CID('base32', 1, 'raw', mh)
>>> block_store = SomeBlockStore()
>>> block_store.mapping[cid.digest] = data
...
>>> async def test():
... result = await export(cid, block_store)
... assert isinstance(result, RawNode)
...
... async for chunk in result.content:
... print(chunk)
...
>>> asyncio.run(test())
b'some data'
Recursively iterate through a directory.
>>> from unix_fs_exporter import recursive_export, UnixFSFile
>>> # Creation of the blockstore is an exercise left to the reader
>>> async def test():
... entries = recursive_export('bafybeifpaez32hlrz5tmr7scndxtjgw3auuloyuyxblynqmjw5saapewmu', block_store)
... async for entry in entries:
... assert isinstance(entry, UnixFSFile)
... async for chunk in entry.content:
... assert isinstance(chunk, bytes)
>>> asyncio.run(test())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
unix_fs_exporter-0.2.0.tar.gz
(16.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unix_fs_exporter-0.2.0.tar.gz.
File metadata
- Download URL: unix_fs_exporter-0.2.0.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e7dbbefefd07e77d04ebfd7969dc53732d28ef67f1c0ca7231be9b5053be970
|
|
| MD5 |
e2305c6dce41d222369bdc6dcca1985b
|
|
| BLAKE2b-256 |
6bfc3df92158d750fb43febf324e943a32e402adfaa3e2246ee9d0bf7cc142dd
|
File details
Details for the file unix_fs_exporter-0.2.0-py3-none-any.whl.
File metadata
- Download URL: unix_fs_exporter-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
734144c8ed87cad87cc80c58f343983700582614ea4ca5c88b7f0006dd521138
|
|
| MD5 |
a2008f3b2ab5cc4c79d0edf8038a84a3
|
|
| BLAKE2b-256 |
fbe1f65aa65d368f672abfaae41eea8e541ef7afbb1065a6bfb40768295636e5
|