hippius 0.2.44__py3-none-any.whl → 0.2.45__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hippius
3
- Version: 0.2.44
3
+ Version: 0.2.45
4
4
  Summary: Python SDK and CLI for Hippius blockchain storage
5
5
  Home-page: https://github.com/thenervelab/hippius-sdk
6
6
  Author: Dubs
@@ -1,4 +1,4 @@
1
- hippius_sdk/__init__.py,sha256=mk5TY1tFuEOZimiH4ju6fTc0ug3fw_oVhK-sEmVfSV4,1474
1
+ hippius_sdk/__init__.py,sha256=Lp4uoDcZsX1k_MRVxSoC85xZIPvJDc9mYTeOy60EHqk,1474
2
2
  hippius_sdk/cli.py,sha256=aqKOYSBSWt7UhcpFt7wf9yIPJ3bznpsJ6ehOnuZ4usI,18235
3
3
  hippius_sdk/cli_assets.py,sha256=rjH3Z5A1CQr2d5CIAAAb0WMCjoZZlMWcdo0f93KqluE,635
4
4
  hippius_sdk/cli_handlers.py,sha256=HkZldE8ZDS6WHu8aSoeS_rYZ4kp3F-Kdzu-weY1c0vU,128258
@@ -13,12 +13,12 @@ hippius_sdk/db/migrations/20241202000001_switch_to_subaccount_encryption.sql,sha
13
13
  hippius_sdk/db/setup_database.sh,sha256=STp03qxkp2RmIVr6YZIcvQQm-_LLUOb6Jobh-52HWmg,3115
14
14
  hippius_sdk/db_utils.py,sha256=-x0rbN0as7Tn3PJPZBYCgreZe52FLH40ppA1TLxsg90,1851
15
15
  hippius_sdk/errors.py,sha256=LScJJmawVAx7aRzqqQguYSkf9iazSjEQEBNlD_GXZ6Y,1589
16
- hippius_sdk/ipfs.py,sha256=los32BjKuVMX9v4GWT-mXUQuxAm2Quc8GjKOMqH42LU,103808
17
- hippius_sdk/ipfs_core.py,sha256=0gzR5zucWoetrKb_bG0O9inGiZxHfuWvFeDMv8qrCi4,13108
16
+ hippius_sdk/ipfs.py,sha256=IhdPmiIAWs7REYxd0MzVW1xD-_ZJQx8tXu6ONWXiNuI,104558
17
+ hippius_sdk/ipfs_core.py,sha256=xsY0Ox6anmrkbrxkRr2RXzEukB-EEaW_oMvO0Va3vjQ,13148
18
18
  hippius_sdk/key_storage.py,sha256=SXFd6aGQw9MDLGX2vSBuAY7rdX-k5EvFm63z7_n-8yQ,8148
19
19
  hippius_sdk/substrate.py,sha256=4a7UIE4UqGcDW7luKTBgSDqfb2OIZusB39G1UiRs_YU,50158
20
20
  hippius_sdk/utils.py,sha256=rJ611yvwKSyiBpYU3w-SuyQxoghMGU-ePuslrPv5H5g,7388
21
- hippius-0.2.44.dist-info/METADATA,sha256=JKOmVfvlchci0FLqYagWtn7v9isPoTJVhbZrBD9aAHU,30088
22
- hippius-0.2.44.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
23
- hippius-0.2.44.dist-info/entry_points.txt,sha256=bFAZjW3vndretf9-8s587jA2ebMVI7puhn_lVs8jPc8,149
24
- hippius-0.2.44.dist-info/RECORD,,
21
+ hippius-0.2.45.dist-info/METADATA,sha256=af35m2atfppmNg4WkmIImTGkPtpp8cF0jgCiFtQeN-M,30088
22
+ hippius-0.2.45.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
23
+ hippius-0.2.45.dist-info/entry_points.txt,sha256=bFAZjW3vndretf9-8s587jA2ebMVI7puhn_lVs8jPc8,149
24
+ hippius-0.2.45.dist-info/RECORD,,
hippius_sdk/__init__.py CHANGED
@@ -26,7 +26,7 @@ from hippius_sdk.config import (
26
26
  from hippius_sdk.ipfs import IPFSClient, S3PublishResult, S3DownloadResult
27
27
  from hippius_sdk.utils import format_cid, format_size, hex_to_ipfs_cid
28
28
 
29
- __version__ = "0.2.44"
29
+ __version__ = "0.2.45"
30
30
  __all__ = [
31
31
  "HippiusClient",
32
32
  "IPFSClient",
hippius_sdk/ipfs.py CHANGED
@@ -2109,7 +2109,23 @@ class IPFSClient:
2109
2109
  content_bytes,
2110
2110
  filename=filename,
2111
2111
  )
2112
- cid = result["Hash"]
2112
+ if isinstance(result, bytes): # must be multiple json lines
2113
+ lines = result.decode("utf-8").strip().split("\n")
2114
+ objects = [json.loads(line) for line in lines if line.strip()]
2115
+
2116
+ logger.info(f"Got {len(objects)=} from {store_node=}")
2117
+ # filter out just the one file cid, ignore dirs, it's usually the first item,
2118
+ # but hey let's not risk it
2119
+ for o in objects:
2120
+ if o["Name"] == file_name:
2121
+ cid = o[0]["Hash"]
2122
+ break
2123
+ else:
2124
+ raise KeyError(
2125
+ f"Store call failed, {file_name=} not found in {objects=}"
2126
+ )
2127
+ else:
2128
+ cid = result["Hash"]
2113
2129
  logger.info(f"Content uploaded to store node {store_node} with CID: {cid}")
2114
2130
  except Exception as e:
2115
2131
  raise HippiusIPFSError(
@@ -2120,10 +2136,10 @@ class IPFSClient:
2120
2136
  try:
2121
2137
  pin_client = AsyncIPFSClient(api_url=pin_node)
2122
2138
  await pin_client.pin(cid)
2123
- logger.info(f"File pinned to backup node {pin_node}")
2139
+ logger.info(f"File pinned to {pin_node=}")
2124
2140
  except Exception as e:
2125
2141
  raise HippiusIPFSError(
2126
- f"Failed to pin content to pin node {pin_node}: {str(e)}"
2142
+ f"Failed to pin content to {pin_node=}: {str(e)}"
2127
2143
  ) from e
2128
2144
 
2129
2145
  # Conditionally publish to substrate marketplace based on publish flag
@@ -2135,7 +2151,7 @@ class IPFSClient:
2135
2151
  url=substrate_url,
2136
2152
  )
2137
2153
  logger.info(
2138
- f"Submitting storage request to substrate for file: {filename}, CID: {cid}"
2154
+ f"Submitting storage request to substrate for file: {file_name}, CID: {cid}"
2139
2155
  )
2140
2156
 
2141
2157
  tx_hash = await substrate_client.storage_request(
hippius_sdk/ipfs_core.py CHANGED
@@ -80,7 +80,9 @@ class AsyncIPFSClient:
80
80
  response.raise_for_status()
81
81
  return response.json()
82
82
 
83
- async def add_bytes(self, data: bytes, filename: str = "file") -> Dict[str, Any]:
83
+ async def add_bytes(
84
+ self, data: bytes, filename: str = "file"
85
+ ) -> Dict[str, Any] | bytes:
84
86
  """
85
87
  Add bytes to IPFS.
86
88
 
@@ -106,7 +108,7 @@ class AsyncIPFSClient:
106
108
  logger.warning(
107
109
  f"Corrupted response returned from {url=} {filename=} ({len(data)=}) {response.content=}"
108
110
  )
109
- raise
111
+ return response.content
110
112
 
111
113
  async def add_str(self, content: str, filename: str = "file") -> Dict[str, Any]:
112
114
  """