haive-dataflow for Haive framework
Project description
Haive Dataflow
A comprehensive registry and discovery system for the Haive framework that provides component management, serialization, and persistence.
Overview
The haive-dataflow package provides a powerful registry system for discovering, registering, and managing various components in the Haive ecosystem, such as:
- Agents
- Tools and Toolkits
- Engines
- Games
- LLM Models and Providers
- Embedding Models and Providers
The package handles component discovery, serialization/deserialization, dependency management, and both in-memory and database persistence via Supabase.
Installation
pip install haive-dataflow
For development:
poetry add haive-dataflow
Key Features
- Component Registry: Centralized system for tracking and managing Haive components
- Automatic Discovery: Find and register components in the Haive ecosystem
- Serialization: Convert complex Python objects to/from storable formats
- Dependency Management: Track dependencies between components
- Database Integration: Store registry data in Supabase (optional)
- API Endpoints: Access registry data through RESTful API routes
Usage Examples
Basic Registry Usage
from haive.dataflow import registry_system, EntityType
# Register a new component
registry_system.register_entity(
name="TextClassifier",
type=EntityType.AGENT,
description="Classifies text into categories",
module_path="haive.agents.classifiers",
class_name="TextClassifierAgent"
)
# Query registered components
agents = registry_system.get_entities_by_type(EntityType.AGENT)
Component Discovery
from haive.dataflow import discover_agents, discover_tools, discover_all
# Discover and register all agents
discovered_agents = discover_agents()
print(f"Discovered {len(discovered_agents)} agents")
# Discover everything
all_components = discover_all()
Serialization
from haive.dataflow import serialize_object, deserialize_object
# Serialize a complex object
serialized = serialize_object(my_complex_object)
# Deserialize it later
restored_object = deserialize_object(serialized)
Core Components
registry_system: Singleton instance of the registry systemEntityType: Enum of supported entity types (AGENT, TOOL, ENGINE, etc.)ConfigType: Enum of configuration types (STATE_SCHEMA, INPUT_SCHEMA, etc.)DependencyType: Enum of dependency relationships (REQUIRES, USES, EXTENDS)RegistryItem: Base model for registry entriesdiscover_*: Functions for component discoverySerializationRegistry: Registry for custom serializers and deserializers
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Project details
Release history Release notifications | RSS feed
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 haive_dataflow-1.0.0.tar.gz.
File metadata
- Download URL: haive_dataflow-1.0.0.tar.gz
- Upload date:
- Size: 353.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6299334fb8ed9d76dcbda14a013bdac24d6fd89e3ba28f8f947ffb8c69358f4
|
|
| MD5 |
7a433605b71414d566fe9e6659e56245
|
|
| BLAKE2b-256 |
096007c47ea76cea84d12938af53deed6c5cd9208dcf9ca99485b927e489fb10
|
File details
Details for the file haive_dataflow-1.0.0-py3-none-any.whl.
File metadata
- Download URL: haive_dataflow-1.0.0-py3-none-any.whl
- Upload date:
- Size: 462.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87f588abe898b2605635d14b4b2b9310886e59a3033de1cbaf265c3e229032db
|
|
| MD5 |
38df0d7c82e25712795988b927ed9a8b
|
|
| BLAKE2b-256 |
c999fa525bf3afaeac9114df8fabb37e86453c3f11a9b308e013ac8ca7f7aabd
|