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

Uploaded Python 3

File details

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

File metadata

  • Download URL: nectarpy-0.16.0.tar.gz
  • Upload date:
  • Size: 45.0 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.0.tar.gz
Algorithm Hash digest
SHA256 79237fa3bd68feb4efa12a5405e1f774bf40ac165b17e1f0384dd56bb78ae2a7
MD5 a81132e0a122534b3e1cd866d46d821f
BLAKE2b-256 59473d46eb438bc65e6bfd9613c54084e85180d410382636882ae7de3c976779

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nectarpy-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 48.6 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a43114b90426764e4d66777b303d96d0bf3eead1a03234110ca72d7e49844cb
MD5 c71a199fd1d1300af21bafcdf6ac4932
BLAKE2b-256 6373803c1d5a5a660d581d2b86d780e8b0bf3849add1d3c01b38de31d6b66e88

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