Foundational data models for the AbstractFramework ecosystem
Project description
AbstractModels
Foundational data models for the AbstractFramework ecosystem
Overview
AbstractModels is a lightweight, dependency-free Python package that provides shared data structures and type definitions for the AbstractFramework ecosystem. By centralizing model definitions, it:
- Eliminates circular dependencies between framework packages
- Ensures consistency of data structures across components
- Simplifies maintenance with a single source of truth
- Enables clean architecture with clear separation of concerns
Purpose
In a multi-package framework like AbstractFramework (which includes AbstractCode, AbstractFlow, AbstractRuntime, etc.), components often need to share common data structures. Without a central model repository, this leads to:
- Circular import dependencies
- Duplicate model definitions
- Version drift and inconsistencies
- Complex dependency graphs
AbstractModels solves these issues by serving as the foundational layer that all other packages can depend on without creating cycles.
Installation
pip install abstractmodels
Usage
from abstractmodels import __version__
print(f"AbstractModels version: {__version__}")
As the framework evolves, models will be added to represent various entities:
# Future usage examples (not yet implemented)
from abstractmodels.flow import FlowConfig, NodeDefinition
from abstractmodels.agent import AgentConfig, ProviderConfig
from abstractmodels.runtime import RuntimeConfig, ExecutionState
Package Structure
abstractmodels/
├── __init__.py # Package initialization and version info
├── flow.py # (Future) Flow and node models
├── agent.py # (Future) Agent and provider models
├── runtime.py # (Future) Runtime and execution models
└── common.py # (Future) Common utilities and base classes
Design Principles
- Zero dependencies: No external dependencies to avoid dependency hell
- Lightweight: Minimal overhead, fast imports
- Type-safe: Full type hints for IDE support and static analysis
- Immutable where possible: Prefer frozen dataclasses for safety
- Well-documented: Clear docstrings and examples
- Backwards compatible: Semantic versioning and deprecation warnings
Development Status
AbstractModels is in early development (v0.1.0). The initial release establishes the package structure and dependency-free foundation. Model definitions will be added incrementally as the AbstractFramework ecosystem matures.
Contributing
Contributions are welcome! When adding new models:
- Keep the package dependency-free (use only Python stdlib)
- Add comprehensive docstrings with examples
- Use type hints for all public APIs
- Follow snake_case naming conventions
- Keep files focused and under 600 lines
Related Packages
AbstractModels is part of the AbstractFramework ecosystem:
- AbstractCode: LLM agent framework with tool support
- AbstractFlow: Visual workflow and flow-based programming
- AbstractRuntime: Execution runtime for workflows and agents
License
MIT License - see LICENSE file for details
Version History
0.1.0 (2026-01-08)
- Initial release
- Package structure and foundation
- Zero-dependency architecture established
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 abstractmodels-0.1.0.tar.gz.
File metadata
- Download URL: abstractmodels-0.1.0.tar.gz
- Upload date:
- Size: 4.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 |
3adffa1c945298f92ba4ba7d1d98b1c8110964f92450c58c46106af0a70d7a3e
|
|
| MD5 |
53f8a17ead02fe0a178e8c31db1bb92c
|
|
| BLAKE2b-256 |
db26eb23c7b18d52215f454895eae33e0b8a6532ab442f47e89513d165fa0308
|
File details
Details for the file abstractmodels-0.1.0-py3-none-any.whl.
File metadata
- Download URL: abstractmodels-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.6 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 |
ee3344fa85b5b67f4bbe9f795f620c21697821093b876e0d62e1b888a297fb6d
|
|
| MD5 |
bd9d8dffdf4e6ab7312c889da3105c6e
|
|
| BLAKE2b-256 |
6d94eafca099c561847b594946cfd55a1642f0e2515b6c8ac634479391830887
|