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:
- 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
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dwellir_harvester_lib-0.0.3.tar.gz.
File metadata
- Download URL: dwellir_harvester_lib-0.0.3.tar.gz
- Upload date:
- Size: 24.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb794e5cc4e4c8fb78ea593b007a81479993023f46acd7d3d6d8f1bdef57036
|
|
| MD5 |
c23757b3f10faa0425848116ecd38f91
|
|
| BLAKE2b-256 |
2de7fd36dc301116f9c4871e188178c4ee0fa0148a39b80a2b8f76103009f04a
|
File details
Details for the file dwellir_harvester_lib-0.0.3-py3-none-any.whl.
File metadata
- Download URL: dwellir_harvester_lib-0.0.3-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38c1a020f88727827c06530af167af6d2296923778fd497180e6bdedb7992167
|
|
| MD5 |
c9d5ddeb4ccf9fbfad72b507bf025993
|
|
| BLAKE2b-256 |
c0048622c5b4c7728e02ec0f5175d5ae8b5a61575b79f6b5e47710c66b288ec0
|