Skip to main content

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


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)

Uploaded Source

Built Distribution

unix_fs_exporter-0.2.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

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

Hashes for unix_fs_exporter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4e7dbbefefd07e77d04ebfd7969dc53732d28ef67f1c0ca7231be9b5053be970
MD5 e2305c6dce41d222369bdc6dcca1985b
BLAKE2b-256 6bfc3df92158d750fb43febf324e943a32e402adfaa3e2246ee9d0bf7cc142dd

See more details on using hashes here.

File details

Details for the file unix_fs_exporter-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for unix_fs_exporter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 734144c8ed87cad87cc80c58f343983700582614ea4ca5c88b7f0006dd521138
MD5 a2008f3b2ab5cc4c79d0edf8038a84a3
BLAKE2b-256 fbe1f65aa65d368f672abfaae41eea8e541ef7afbb1065a6bfb40768295636e5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page