Skip to main content

AbstractModels

Foundational data models for the AbstractFramework ecosystem

PyPI version Python 3.8+ License: MIT

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

  1. Zero dependencies: No external dependencies to avoid dependency hell
  2. Lightweight: Minimal overhead, fast imports
  3. Type-safe: Full type hints for IDE support and static analysis
  4. Immutable where possible: Prefer frozen dataclasses for safety
  5. Well-documented: Clear docstrings and examples
  6. 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

Metadata

Release files for abstractmodels 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for abstractmodels 0.1.0
File Size Uploaded
abstractmodels-0.1.0.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for abstractmodels 0.1.0
File Interpreter ABI Platform
abstractmodels-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.8 kB

Release files / abstractmodels-0.1.0.tar.gz

Download URL abstractmodels-0.1.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3adffa1c945298f92ba4ba7d1d98b1c8110964f92450c58c46106af0a70d7a3e
BLAKE2b-256 checksum
How to use checksums
db26eb23c7b18d52215f454895eae33e0b8a6532ab442f47e89513d165fa0308
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / abstractmodels-0.1.0-py3-none-any.whl

Download URL abstractmodels-0.1.0-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee3344fa85b5b67f4bbe9f795f620c21697821093b876e0d62e1b888a297fb6d
BLAKE2b-256 checksum
How to use checksums
6d94eafca099c561847b594946cfd55a1642f0e2515b6c8ac634479391830887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page