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

This version

0.6.4

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.6.4-cp314-cp314-win_amd64.whl (12.0 MB view details)

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.6.4-cp314-cp314-manylinux_2_38_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ x86-64

fabricatio_core-0.6.4-cp314-cp314-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

fabricatio_core-0.6.4-cp314-cp314-macosx_11_0_arm64.whl (11.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio_core-0.6.4-cp313-cp313-win_amd64.whl (12.0 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.6.4-cp313-cp313-manylinux_2_38_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ x86-64

fabricatio_core-0.6.4-cp313-cp313-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

fabricatio_core-0.6.4-cp313-cp313-macosx_11_0_arm64.whl (11.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio_core-0.6.4-cp312-cp312-win_amd64.whl (12.0 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.6.4-cp312-cp312-manylinux_2_38_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ x86-64

fabricatio_core-0.6.4-cp312-cp312-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.6.4-cp312-cp312-macosx_11_0_arm64.whl (11.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file fabricatio_core-0.6.4-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 12.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c8ba109ca8aa0e26024e3d2f9ce5b56c80a25bc9b4c789c5f1368317c211020a
MD5 3d7b2aa761f3fb7772de30e391c33a26
BLAKE2b-256 6124a184f35cd5077d544b0287d9fd0fc5899e7f76884d69c4a98306b51d202f

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp314-cp314-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp314-cp314-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.14, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 0fb51dc1a4214af929d10732015ddae4d6e8494afc50dc46984c74fc54057b7e
MD5 0fd0054638a7c87fe1d5f6847e7f3c5b
BLAKE2b-256 f0d2b4ed4f5af4624d3981eb27cb6cabc6e321281abbdd934ce0428cffa2894b

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp314-cp314-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp314-cp314-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 1f96b500fca7ad34119e3dc1116431bf52eb7df4cbb38368ce8627a040e9c3e4
MD5 35613350b64f11e62d0a9fdb7f1b884c
BLAKE2b-256 ab23e6891c208d8ea50a84529ecf88909653ca7f1e354b6724001c5682d97614

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.6 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 615081585cf4c5e246b07656cb6296bcce761c347144d159f5d28ec554a67aeb
MD5 8c73fa29271448ae5fb5f36e9f8c3d22
BLAKE2b-256 1aeaa0cf7aff74555153601093d998efac61ba2300913ab749a42917da6fba20

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 12.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 956af85e726b901af069a04d3da3bd649f1b7538ec15821384412f26dc085768
MD5 b7d97c9e1cc499f57414c570bfebd1c8
BLAKE2b-256 4f90b58908d8a243e75ee7be5b815d952e976f9d6c6e80073ed7759f899eb330

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp313-cp313-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp313-cp313-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.13, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 76c51e349ee3c430d408a7e5a69fc8ead537190b2792e1edd790c51cdf948761
MD5 ef5c53dd7be3d681193a48618595b103
BLAKE2b-256 738ed4a1c14b86531efa23fc1e906749a07096dc23e6a7f5d746d91b3c5f2fa1

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp313-cp313-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp313-cp313-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: CPython 3.13, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 81a6c1be80025d0148fbe94e70540868ed802645ec9a4d8476ba7f8507267af9
MD5 7d21be23822d017c34c2178e06db877a
BLAKE2b-256 1cbba8c49a225e0bd5aa7fb7bd93d88b5a0ac95630593b23335a866c17d23814

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.6 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d994424d95c66a80f8a58c14f06c6b2d2d76951de635b2523d2ff9e279dd38b9
MD5 bfddc6ad29f1be3fc4634e755d8176c1
BLAKE2b-256 6bd6079010a8216f513a25376603a3d2768eed1f53a7b939ae12a80c3e0119d0

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 12.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0979c9714bf2ed3aa731b7ca5acbde78d8ce82cd40884a0af2028a32ee898043
MD5 a297a93159ee91f440e692c84ab4430d
BLAKE2b-256 26ea0964642ccb2d1d756f6b424ae7895b3073ef749ee80e3a85273758a848e4

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp312-cp312-manylinux_2_38_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp312-cp312-manylinux_2_38_x86_64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.12, manylinux: glibc 2.38+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 5d5b6087523499c4a1f81f6f705a6cd1e3d884c1096670ed90b20bb9155c495c
MD5 42fae13d62124ddb28b2a66c3b7a7fdc
BLAKE2b-256 737102dd4ae9c20524508a178a60e8e25a8f89aa5e38d96f2920e5d6d27b76f9

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp312-cp312-manylinux_2_38_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp312-cp312-manylinux_2_38_aarch64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: CPython 3.12, manylinux: glibc 2.38+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 1c660a4fd8f99904dd24d939bfe3ff5593644f735351bc9e8d0f6bb1ab59fdc2
MD5 3f90cafc7fe98b78fe443ed150728f00
BLAKE2b-256 f2d0fa0729a1b61303bfbdd8551ab85c0cc0234b84e9562bddc898ddac50b8ce

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.6.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.4-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.6 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","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.6.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b9019a511c820806690c9e5331bf1da62c5b3afc03079140cd66c55b8332b79
MD5 9a9cf4d2c6bcfb2dd037532ef53a4a25
BLAKE2b-256 f55b6b228e33493117de4f98ab7a2df64efec28f1e40e949a75fc49870fa7aca

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