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.15.1.tar.gz (41.6 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.15.1-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

File details

Details for the file nectarpy-0.15.1.tar.gz.

File metadata

  • Download URL: nectarpy-0.15.1.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for nectarpy-0.15.1.tar.gz
Algorithm Hash digest
SHA256 810102c74da45600b37f10638f9f5e554ce4b07802ad5e5b42aea625d0b580ad
MD5 52643845b28887d7767dfe321ec21724
BLAKE2b-256 0e986968f97dc66f7d1373560ad3b1037db7be0e83ed6bad26f55c62f8f26d9e

See more details on using hashes here.

File details

Details for the file nectarpy-0.15.1-py3-none-any.whl.

File metadata

  • Download URL: nectarpy-0.15.1-py3-none-any.whl
  • Upload date:
  • Size: 45.0 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.15.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4b68eef1b1c942d3e367a9c825c24e65fd1d65dcb91dda12606e6118731e73dc
MD5 95f9dcf38f96d60f792e76d68c3592bb
BLAKE2b-256 9841852a4715facc9d5a9119c527bb5f922759f20244e43717eb8701525341dc

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