⚠ Note: as of Feb 2023, this library is not being maintained. If you encounter a bug, feel free to report it, but do not expect it to be fixed. If you do a PR where tests pass, we're happy to merge it. And feel free to fork this repo and change it as you wish (including bug fixes).
pybundlr
Simple py driver for bundlr.
- Constructed by wrapping bundlr CLI.
- Full API in pybundlr.py
- Pypi main, test
- GitHub repo
Installation
Ensure prerequisites:
- Linux/MacOS
- Python 3.8.5+
- Bundlr CLI:
npm install -g @bundlr-network/client
Open a new terminal and:
#Create & activate venv
python -m venv venv
source venv/bin/activate
#main install
pip3 install pybundlr
Using Pybundlr Library
First, a quick example that reads information from a bundlr node. In this case, a balance.
In terminal, go into Python console: python
In Python console:
from pybundlr import pybundlr
eth_address = "0x7BA3d8551A6f2C70a5d47bb448BcF7EF69661822"
bal = pybundlr.balance(eth_address, "matic")
print(f"{eth_address[:4]}'s MATIC balance in bundlr node: {bal} wei")
Exit the Python console for the next step.
Now, for more thorough example. We'll create a file, publish it online, then read it back.
The bundlr node will need funds to pay for storage. So, please ensure that you have a Polygon account that holds some MATIC. Just a few cents' worth should be enough.
In terminal, export the private key of your Polygon account:
export TEST_PRIVATE_KEY1=<your private key>
In terminal, go into Python console: python
In Python console:
import os
import requests
from pybundlr import pybundlr
eth_private_key = os.getenv('REMOTE_TEST_PRIVATE_KEY1')
#create test file
file_name = "/tmp/testfile.txt"
content_in = "test content" + "\n"
with open(file_name, 'a') as f:
f.write(content_in)
#fund the node, and upload the file
url = pybundlr.fund_and_upload(file_name, "matic", eth_private_key)
print(f"Uploaded file. It's online at: {url}")
#retrieve the result
result = requests.get(url)
content_out = result.text
assert content_out == content_in
This example was on Polygon mainnet, with currency = "matic". Pybundlr also works on Ethereum mainnet ("ethereum"), Arweave ("arweave"), and more.
Development
- Developers flow - to further develop pybundlr
- Release process - to do a new release of pybundlr
Metadata
Release files for pybundlr 0.1.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pybundlr-0.1.12.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pybundlr-0.1.12-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.1 kB
Release files / pybundlr-0.1.12.tar.gz
| Download URL | pybundlr-0.1.12.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7e0feb91996c32ffef9add0290027e6b3bafbac5942c41a48f6749b1cfc562f
|
|
BLAKE2b-256 checksum How to use checksums |
7678cfc7b7d4376b337c88677e0b9f8673a3ca07fa5be90b3e8ac1cf9db74eb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.5
|
Release files / pybundlr-0.1.12-py3-none-any.whl
| Download URL | pybundlr-0.1.12-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c8588d91e348acf4c865b2bf7b0210ab5e25672fa36f9ac3878d2e8680aed7f9
|
|
BLAKE2b-256 checksum How to use checksums |
e78cb6a2e2a0c01a022f567f35d7168f94e78903f0ac4c962f956dc887002852
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.5
|