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.2.tar.gz (24.4 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.2-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dwellir_harvester_lib-0.0.2.tar.gz
  • Upload date:
  • Size: 24.4 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.2.tar.gz
Algorithm Hash digest
SHA256 34483d5803bb74d0cff3add9efdc8294f5cd5cee20d94d236627d1f17acf9947
MD5 795de255e2b92f3d2a95c0f5987fd405
BLAKE2b-256 e2af39d6d2fd2dd498f315e1ea2e241b28fed9c949017ddc67414da12087005b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dwellir_harvester_lib-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b086f817b4eb27fd44fc3c87c595addb133affe32ee563463d772eabf389ee70
MD5 7855416cdc640b8b4c82b08a10437604
BLAKE2b-256 dba4b56936ec9027d1a8431bea8cbd4ca823dcda2c8770a97313fba794332cde

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