Skip to main content

Python Package for Uploading Data to Dune Community Sources

Project description

dune-aws

Basic AWS Components for syncing off-chain data with Dune Community Sources

Installation & Usage

pip install dune-aws

Usage Option 1; Direct via AWSClient

This option provides the end user with many facets of functionality (delete, upload, download, view files). One can mix and match the required components for their use case (utilizing also aws.last_sync_block). For a very simple example utilizing this, see Option 2.

import os
from dune_aws.aws import AWSClient

aws_client = AWSClient(
    internal_role=os.environ["AWS_INTERNAL_ROLE"],
    # Info below is provided by Dune team.
    external_role=os.environ["AWS_EXTERNAL_ROLE"],
    external_id=os.environ["AWS_EXTERNAL_ID"],  
    bucket=os.environ["AWS_BUCKET"],
)

data_set = [{"x": 1, "y": 2}, {"z": 3}]

aws_client.put_object(
    data_set,
    object_key="table_name/must_contain_dot_json_then_number.json",
)

Usage Option 2; Simpler via RecordHandler

from dune_aws.record_handler import RecordHandler

handler = RecordHandler(
    file="table_name/moo_123",
    data_set=[{"x": 1, "y": 2}, {"z": 3}]  # should be list[dict[str, Any]],
    # If AWSClient is not supplied to the handler, it will be loaded from environment.
)

handler.upload_content(delete_first=True)

Note that, one must first coordinate with Dune to

  1. gain access to the AWS bucket (i.e. external credentials) and
  2. define the table schema of your dataset.

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

dune_aws-0.0.0b0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

dune_aws-0.0.0b0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file dune_aws-0.0.0b0.tar.gz.

File metadata

  • Download URL: dune_aws-0.0.0b0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for dune_aws-0.0.0b0.tar.gz
Algorithm Hash digest
SHA256 9302364cb97fe115e2656c5eca1d47b96a7a984ace884f7f8f646573f7247b97
MD5 947bddcce787fa7682efbe2e2305b723
BLAKE2b-256 71ed4fae7563a2a8ec904945285d186606d3149faa35e9e210591da2106fc9dc

See more details on using hashes here.

File details

Details for the file dune_aws-0.0.0b0-py3-none-any.whl.

File metadata

  • Download URL: dune_aws-0.0.0b0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for dune_aws-0.0.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 525d820181d863f793f704d9bdf6a5475467b5ad07d8a241244bc41a02d079c0
MD5 0a96679563103b88265b876057a9046a
BLAKE2b-256 d1ca1edf552a917fe6299e3aa7ff03fe1ec8163ceff888c288873d5dd3db8a1b

See more details on using hashes here.

Supported by

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