Skip to main content

A foundational Python library providing core components for building LLM-driven applications using an event-based agent structure.

Project description

fabricatio-core

MIT Python Versions PyPI Version PyPI Downloads PyPI Downloads Build Tool: uv

A foundational Python library providing core components for building LLM-driven applications using an event-based agent structure.

📦 Installation

This package is part of the fabricatio monorepo and is available as a single package using either pip or uv:

pip install fabricatio
# or
uv pip install fabricatio

For a full installation that includes this package and all other components of fabricatio:

pip install fabricatio[full]
# or
uv pip install fabricatio[full]

🔍 Overview

Provides essential tools for:

  • Event-based architecture patterns The event-based architecture patterns in this library enable a reactive programming model. Events are used to trigger actions and communicate between different components of the application. For example, when a certain condition is met, an event can be emitted, and other parts of the application can listen for this event and respond accordingly. This pattern helps in building scalable and modular applications.
  • Role-based agent execution framework The role-based agent execution framework allows for the definition of different roles for agents in the application. Each role has specific permissions and responsibilities, and agents can be assigned to these roles. For example, in a multi - user application, there could be roles like 'admin', 'user', and 'guest', each with different levels of access to resources and functionality.
  • Task scheduling and management The task scheduling and management feature is responsible for organizing and executing tasks in the application. It can handle task dependencies, prioritize tasks, and ensure that tasks are executed in the correct order. For example, in a data processing application, tasks like data ingestion, transformation, and analysis can be scheduled and managed using this framework.
  • File system operations and content detection This feature provides functionality for performing file system operations such as reading, writing, and deleting files. It also includes content detection capabilities, which can identify the type of content in a file, such as text, image, or binary data. For example, it can automatically detect the encoding of a text file or the format of an image file.
  • Logging and diagnostics The logging and diagnostics feature helps in monitoring the application's behavior and troubleshooting issues. It can record important events, errors, and warnings in a log file, which can be used for debugging and auditing purposes. For example, if an error occurs during the execution of a task, the log can provide detailed information about the error, including the stack trace and the values of relevant variables.
  • Template rendering and configuration handling The template rendering and configuration handling feature allows for the use of templates to generate dynamic content and manage application configuration. Templates can be used to generate HTML pages, emails, or other types of documents. Configuration handling ensures that the application can be easily configured with different settings, such as database connections and API keys.
  • Type-safe data models for common entities The type-safe data models for common entities ensure that the data used in the application has a well - defined structure. These models are based on Pydantic, which provides type validation and serialization capabilities. For example, in a user management application, a data model can be defined for the 'User' entity, with attributes like ' name', 'email', and 'password', and Pydantic can be used to validate the input data and ensure that it conforms to the defined model.
  • Asynchronous execution utilities The asynchronous execution utilities enable the application to perform tasks asynchronously, which can improve the performance and responsiveness of the application. For example, in a web application, asynchronous I/O operations can be used to handle multiple requests simultaneously without blocking the main thread. This feature uses Python's asyncio library to implement asynchronous programming.

Built on a hybrid Rust/Python foundation for performance-critical operations.

🧩 Key Features

  • Event System: Reactive architecture with event emitters and listeners The event system is the core of the event - based architecture. Event emitters are responsible for generating events, and event listeners are registered to listen for specific events. When an event is emitted, all the registered listeners are notified, and they can perform their respective actions. For example, in a game application, an event emitter can be used to emit an event when a player scores a goal, and event listeners can be used to update the scoreboard and play a sound effect.
  • Role Framework: Agent roles with workflow dispatching capabilities The role framework defines the different roles that agents can have in the application. Each role has a set of permissions and a workflow associated with it. When an agent is assigned a role, the workflow dispatching capabilities ensure that the agent follows the correct sequence of actions. For example, in a project management application, a ' project manager' role may have a workflow that includes tasks like creating a project plan, assigning tasks to team members, and monitoring progress.
  • Task Engine: Status-aware task management with dependencies The task engine is responsible for managing tasks in the application. It keeps track of the status of each task, such as 'pending', 'in progress', or 'completed'. It also handles task dependencies, ensuring that tasks are executed in the correct order. For example, in a software development project, a task to test a module may depend on the completion of the coding task for that module.
  • Toolbox System: Callable tool registry with rich metadata The toolbox system maintains a registry of callable tools in the application. Each tool has rich metadata associated with it, such as its name, description, input parameters, and output format. This metadata can be used to discover and use tools in a more efficient way. For example, in a data analysis application, a tool for calculating statistical measures can be registered in the toolbox, and other parts of the application can use this tool by providing the appropriate input parameters.
  • Type Models: Pydantic-based models for consistent data structures The type models are based on Pydantic, which provides a way to define and validate data structures. These models ensure that the data used in the application is consistent and conforms to the defined schema. For example, in a financial application, a type model can be used to define the structure of a transaction, including attributes like ' amount', 'date', and 'description', and Pydantic can be used to validate the input data and ensure that it is in the correct format.
  • File Utilities: Smart file operations with content type detection The file utilities provide a set of functions for performing file system operations. They include features like content type detection, which can automatically identify the type of content in a file. This can be useful for handling different types of files in a more intelligent way. For example, when reading a file, the file utilities can determine if it is a text file or a binary file and handle it accordingly.
  • Template Engine: Handlebars-based template rendering system The template engine uses the Handlebars library to render templates. Templates are used to generate dynamic content by replacing placeholders with actual values. For example, in a web application, a template can be used to generate HTML pages with dynamic content like user names and product information. The Handlebars syntax allows for easy customization and reuse of templates.
  • Language Tools: Language detection and text processing utilities The language tools provide capabilities for detecting the language of a text and performing text processing tasks. Language detection can be used to determine the language of a user - input text, which can be useful for providing language - specific services. Text processing utilities include functions for tasks like tokenization, stemming, and part - of - speech tagging, which can be used for natural language processing applications.

📁 Structure

fabricatio-core/
├── capabilities/     - Core capability definitions
├── decorators.py     - Common function decorators
├── emitter.py        - Event emission and handling
├── fs/               - File system operations
├── journal.py        - Logging infrastructure
├── models/           - Core data models
│   ├── action.py     - Action base classes
│   ├── generic.py    - Base traits (Named, Described, etc.)
│   ├── role.py       - Role definitions
│   ├── task.py       - Task abstractions
│   └── tool.py       - Tool interfaces
├── parser.py         - Text parsing utilities
├── rust.pyi          - Rust extension interfaces
├── utils.py          - General utility functions
└── __init__.py       - Package entry point

📄 License

MIT – see LICENSE

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

fabricatio_core-0.7.1.dev0-cp314-cp314-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ x86-64

fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

fabricatio_core-0.7.1.dev0-cp314-cp314-macosx_11_0_arm64.whl (12.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio_core-0.7.1.dev0-cp313-cp313-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ x86-64

fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

fabricatio_core-0.7.1.dev0-cp313-cp313-macosx_11_0_arm64.whl (12.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio_core-0.7.1.dev0-cp312-cp312-win_amd64.whl (12.6 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ x86-64

fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.7.1.dev0-cp312-cp312-macosx_11_0_arm64.whl (12.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file fabricatio_core-0.7.1.dev0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2cdd0d87e53186f1d0e3a80e108b83e6387bdb343b3d9c775567b529cbcbe9ce
MD5 ce3fa586757f9c8bbc4a2371b46952c3
BLAKE2b-256 01414d229315af5ab65890d59e24154dee386de52d223f49601aee32b996836b

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.14, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 080f6450b41c68d8b613503e53c3482327421ef719f475210fd2d2e709e7ddc1
MD5 56097194d1909875d0d2bc9c20407bc7
BLAKE2b-256 517338024703ad4ce92007c62927b716b0ae83d3cee7e23f6011b39b92f754da

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.14, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 034555fcd557b5012e39ed9d612e56fa5f4aa6a042687cd9c5acca15c0399ec6
MD5 6e7071fbb1e40d329f1386d919d7af80
BLAKE2b-256 0f515d8e753a3e671af2f7f4d13490a30c2cb4850ca637e46e7fd1d7a83d279c

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 041ea4687969d0f488368d93d2f82db1a255506fff758e788ead14c8464d34d5
MD5 14772782ee8fae0f57ef0a2fbe5ca31a
BLAKE2b-256 8518f3973ec0e57438202c81f148221788dff79508ceb5fec3ad7519ac227821

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8bc48f89124e8568b21849e4e9e2679555317534ab720b48ceed652e6660cc42
MD5 7cdfa69425657c1fe798272ee378a119
BLAKE2b-256 ed32297e446bafce1aaf3bf2614ea70cf77566275454791c602fd1dc7b8d4976

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.13, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 9b1a91420950e30184b1f6575b452fa56f8b95ec390b221e53b61924032bc95c
MD5 184b3ce949b489b752285ce3952d1b92
BLAKE2b-256 2bcceb63e31a5949ca99d899fd084075ad0b564eefc67002a39e312e38fca139

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.13, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 0da87f043e79ef9512f7d3c4320d71db7266f5c271a9a0f0a50f19099221e795
MD5 905a309dce501c4309ebe8e6b34fdc83
BLAKE2b-256 fe9496e82e4686ba49c5207577402b547f1ef0fe98f731443cb95777402a2510

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99a561ff3a23d07b38230f48454b6b703368315c1cb185176a1201a1d03645f7
MD5 5d335c5a197dd79f9d0eec204c062b4e
BLAKE2b-256 3e97b2e25cc4f6d65f664963bab35275fcbfb06bddbb6b829b9c520d55a36ec6

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 57d39f570a51447317aac260bf75d46ca963fc4edca139ebd1f19c278933653f
MD5 9db50c1ef2a3c4c878fe0a57d1e8e7a8
BLAKE2b-256 acb3c68cc52378768efb3912da05965fc1ed833cf1bdf0b43d56fcfaca90299e

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.12, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 e2fa9c78e1663602adfc3760fefb6317da6b68867fc03343280bb4c8bad6d412
MD5 c6ea47020a36e53b4fa955cd30968252
BLAKE2b-256 5e3a2d13f2263277268ebf09024c82357d61bf396ed330cba2d691968adc7e16

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.12, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 299cb6bca21c9dbe1638ecdb2e26ead1c5dee62d01a3010eb4107ce014cf5ecd
MD5 7dbb1b806476b44973cc64ea3ed50f6a
BLAKE2b-256 8865613f377421063be4855366ce6aa642b973bb19bee2d6b04d471fb61f4b1b

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.7.1.dev0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.7.1.dev0-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fabricatio_core-0.7.1.dev0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9de435dd7b60bccf5f36d6214dde150b1f7e8c07780cd55bc7150902cee36bf1
MD5 4766ecdb9cf1e1ebe4fbd144c5cda914
BLAKE2b-256 3b09f96c9767f629b7522cef066ea4bfec9a4dc8014837c0d7c68afdc2268fc2

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