Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nectarpy-0.16.2.tar.gz (45.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nectarpy-0.16.2-py3-none-any.whl (49.5 kB view details)

Uploaded Python 3

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

Hashes for nectarpy-0.16.2.tar.gz
Algorithm Hash digest
SHA256 4c2fb703ca51963bc3a454efa56273cc5ff000dc976a5c3f914231eeb9f50047
MD5 ba7b11b9ed6de456ce20318fe7c0a9e5
BLAKE2b-256 5d1ded032080fcd98bc4e26e28795a146f9e3286e5c6c9098df29a8223bb090c

See more details on using hashes here.

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

Hashes for nectarpy-0.16.2-py3-none-any.whl
Algorithm Hash digest
SHA256 51f84e406cae615dcfe8b2f6ea08823513885d207bdf7236d43ce63eda6aeb67
MD5 0b4fe9e0ebf89c2026f04ed28842c5ab
BLAKE2b-256 b4f6f09c7165633005581af02e22ad2e22c4200a9619f1d3b861b8fe772cb097

See more details on using hashes here.

Supported by

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