Skip to main content

Foundational data models for the AbstractFramework ecosystem

Project description

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

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

abstractmodels-0.1.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abstractmodels-0.1.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

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

Hashes for abstractmodels-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3adffa1c945298f92ba4ba7d1d98b1c8110964f92450c58c46106af0a70d7a3e
MD5 53f8a17ead02fe0a178e8c31db1bb92c
BLAKE2b-256 db26eb23c7b18d52215f454895eae33e0b8a6532ab442f47e89513d165fa0308

See more details on using hashes here.

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

Hashes for abstractmodels-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee3344fa85b5b67f4bbe9f795f620c21697821093b876e0d62e1b888a297fb6d
MD5 bd9d8dffdf4e6ab7312c889da3105c6e
BLAKE2b-256 6d94eafca099c561847b594946cfd55a1642f0e2515b6c8ac634479391830887

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