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