Skip to main content

Core API for dwellir-harvester: collector bases, types, loaders, and helpers.

Project description

Dwellir Harvester Lib

Core SDK for building and running Dwellir harvesters. It provides the collector base classes, loader helpers, RPC utilities, and the shared blockchain metadata schema used by dwellir-harvester.

Features

  • Collector base classes (CollectorBase, GenericCollector, BlockchainCollector) with result/metadata helpers
  • Collector loader with plugin paths and entry point support
  • Schema validation helpers and bundled blockchain_node_metadata.schema.json
  • Simple runner to execute a collector class directly (python -m dwellir_harvester.lib.run)
  • RPC helpers for JSON-RPC, Substrate, and EVM-compatible nodes

Installation

python -m venv .venv
source .venv/bin/activate
pip install -e .

Usage

from dwellir_harvester.core import collect_all, bundled_schema_path

result = collect_all([
    "host",  # or your plugin collector name
], schema_path=bundled_schema_path())
print(result)

Run a collector class directly (module:Class):

# Built-in null collector
python -m dwellir_harvester.lib.run dwellir_harvester.collectors.null:NullCollector

# From the dwellir_harvester package
python -m dwellir_harvester.lib.run examples.plugins.sample_collector:SamplePluginCollector

Packaging notes

  • Python 3.9+
  • Entry point group for collectors: dwellir_harvester.collectors
  • Bundled schema is included as package data under dwellir_harvester/data/

Building (offline-friendly)

Use the sibling checkout pattern:

  1. Make sure you have a venv with build tools (and system site packages to avoid missing setuptools):
    python3 -m venv --system-site-packages .venv
    source .venv/bin/activate
    pip install --upgrade pip build
    
  2. Build the library without isolation (reuses your env, no downloads):
    python -m build --no-isolation
    

Artifacts land in dist/ (.whl and .tar.gz). If you depend on this from the app as a sibling path, the existing file:../dwellir-harvester-lib PEP 508 spec in the app works; for publishing, set a versioned requirement there instead.

Publish (Python package)

# build
python3 -m pip install build twine
python3 -m build  # creates dist/*.tar.gz and dist/*.whl

# upload to TestPyPI first (recommended)
python3 -m twine upload -r testpypi dist/*

# Install from testpypi
python3 -m venv .venv
source .venv/bin/activate
# Pull in deps from real, this is needed only on testpypi 
pip3 install jsonschema>=4.25.1 psutil>=7.1.3 requests>=2.32.5
# Install from testpypi
pip3 install --index-url https://test.pypi.org/simple/ --no-deps dwellir-harvester-lib

# then to PyPI
python3 -m twine upload dist/*

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

dwellir_harvester_lib-0.0.5.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

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

dwellir_harvester_lib-0.0.5-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file dwellir_harvester_lib-0.0.5.tar.gz.

File metadata

  • Download URL: dwellir_harvester_lib-0.0.5.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dwellir_harvester_lib-0.0.5.tar.gz
Algorithm Hash digest
SHA256 3cd7052230428aa6a72eb45f1f5f6f31623b9a62d090fa65abc63d26cd967ff6
MD5 3dc52b9782d912ba0e90434f6bdb0d92
BLAKE2b-256 70e6d450caa7c07a5c5c6634aa0e154c2838ed07123f956a7a6322e771dad2a3

See more details on using hashes here.

File details

Details for the file dwellir_harvester_lib-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for dwellir_harvester_lib-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 000481e6891bf3051bfc5feac8c96cb300a93098ba0514681bf0223931199a9c
MD5 065b6978160c33903db0293fc606c58b
BLAKE2b-256 4d216ed7a89c7525d6afd6fe7541b3873d9b19d65d659c47fbf023f7e93b2aca

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