A Python API module designed to run queries on Nectar
Project description
PYTHON NECTAR MODULE
1. Install the module
pip install nectarpy
• If you see an error, try pip3 install nectarpy instead.
• Wait until the installation finishes. You should see a message that it was installed successfully.
2. Use the module in Python
The library exports two role-specific clients:
Data Owner (DO): Nectar
Data Analyst (DA): NectarClient
Your API_SECRET is your API account private key (hex string). It may start with 0x.
Supported mode value: moonbeam (default)
Data Owner (DO)
from nectarpy import Nectar
API_SECRET = "<api-secret>"
nectar = Nectar(API_SECRET, mode="moonbeam")
Role enforcement: Nectar only works for accounts with the DO role. If your API account does not have the DO role, initialization will raise a RuntimeError.
Data Analyst (DA)
from nectarpy import NectarClient
API_SECRET = "<api-secret>"
nectar_client = NectarClient(API_SECRET, mode="moonbeam")
Role enforcement: NectarClient only works for accounts with the DA role. If your API account does not have the DA role, initialization will raise a RuntimeError.
3. Common operations
Below are minimal, end-to-end examples for the primary APIs exposed by the library.
Data Owner (DO): policies & buckets
from nectarpy import Nectar
API_SECRET = "<api-secret>"
nectar = Nectar(API_SECRET, mode="moonbeam")
# 1) Create a policy
policy_id = nectar.add_policy(
allowed_categories=["*"],
allowed_addresses=["0x0000000000000000000000000000000000000000"],
allowed_columns=["*"],
valid_days=30,
usd_price=0.01,
)
# 2) Create a bucket that references one or more policies
bucket_id = nectar.add_bucket(
policy_ids=[policy_id],
use_allowlists=[True],
data_format="std1",
node_address="tls://<ip-address>:5229",
)
Data Analyst (DA): run a BYOC query
from nectarpy import NectarClient
API_SECRET = "<api-secret>"
nectar_client = NectarClient(API_SECRET, mode="moonbeam")
def count_func():
import pandas as pd
df = pd.read_csv("/app/data/worker-data.csv")
return {"count": len(df)}
# 1) Prepare bucket/policy references (provided by the DO)
bucket_ids = ["<bucket-id>"]
policy_indexes = [0]
# 2) Execute the query
result = nectar_client.byoc_query(
pre_compute_func=None,
main_func=count_func,
is_separate_data=False,
bucket_ids=bucket_ids,
policy_indexes=policy_indexes,
)
print(result)
4. Detailed Documentation in your Nectar account
• Data Analyst role: API document for Data Analyst
• Data Owner role: API document for Data Owner
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 nectarpy-0.16.2.tar.gz.
File metadata
- Download URL: nectarpy-0.16.2.tar.gz
- Upload date:
- Size: 45.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c2fb703ca51963bc3a454efa56273cc5ff000dc976a5c3f914231eeb9f50047
|
|
| MD5 |
ba7b11b9ed6de456ce20318fe7c0a9e5
|
|
| BLAKE2b-256 |
5d1ded032080fcd98bc4e26e28795a146f9e3286e5c6c9098df29a8223bb090c
|
File details
Details for the file nectarpy-0.16.2-py3-none-any.whl.
File metadata
- Download URL: nectarpy-0.16.2-py3-none-any.whl
- Upload date:
- Size: 49.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51f84e406cae615dcfe8b2f6ea08823513885d207bdf7236d43ce63eda6aeb67
|
|
| MD5 |
0b4fe9e0ebf89c2026f04ed28842c5ab
|
|
| BLAKE2b-256 |
b4f6f09c7165633005581af02e22ad2e22c4200a9619f1d3b861b8fe772cb097
|