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

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.6.0-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.0-cp314-cp314-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.6.0-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.0-cp313-cp313-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.38+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.6.0-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.0-cp312-cp312-manylinux_2_38_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.38+ ARM64

fabricatio_core-0.6.0-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.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 79cc9a8ba620f87cc12c83c7be08852116ed0708884d8680acb8462846c9aa73
MD5 694c43fea4113d24fc0b755914012974
BLAKE2b-256 a2d08243f5cd58bf508fdc2c038e263017e6788f7ae78783a65ff4819128f524

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp314-cp314-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 c1e50939395c3d9f388fb0c7521d61ba5c14baca71765c7a2dc3a8d254ddcb2a
MD5 af0e43eaf28bcca4a34196e3fdfb7e54
BLAKE2b-256 d50dd32906e64898aa306dee00ce07d291c27862ca402cf137e99670dbc3f5f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp314-cp314-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 c32a11cc1aca651fb02e0d32d2a28276eff233730c1f88a0b57790bb66b722ef
MD5 84c5265c12e6527d028d6bbafda962fe
BLAKE2b-256 2742c6c67bef9858b4b31de8cd06eaaef362fb56eefa7bcd133f3884458c059f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbe033d7853795e38f3432c9314acab1777d6c73a9e0f13ff8e9c96e583ce6a6
MD5 a5d3f4445ae17b4dc7942e6915044e5d
BLAKE2b-256 3888965db3b385d3440c44e031b76ad89c9190ec4acfc34e35e68e8aebccd1c9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 79d3f14f15a0bb5964323b7772cd127058bcbed16ede4b2de278f08d8eb5c8e6
MD5 2b2af74dbd1b818956e14a4bcbdcd671
BLAKE2b-256 22ac42343b98d60696f729de6ad9624e7a911d0defe7d8a3f099b9abb0b85434

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp313-cp313-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 501fad5f7648f96674dca030b54062883fd0050874a5f17e06165f58aedfeab2
MD5 1f8fbc2b7a170e24957305888118da1b
BLAKE2b-256 eb4f170352e2becb1ed3ceeca9b7cb89cbbc5a5992f531a6191a0fa3db675736

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp313-cp313-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 800db0ee9029673fe2221ea538b3d1740ea075c6453fcf613c46023d5663029e
MD5 6f8b5e81cb93be8101c6b83fb38964bd
BLAKE2b-256 39ca9c56dddf6e9053546d34149970c74e062c426aafe1694e2242a4dd581432

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3eb05b81e2641bd0be18547d2dabde49faf261074750a091d293ea88989a4d70
MD5 f37214563267794eb4bdb13e4241051a
BLAKE2b-256 9430727f2445b4b2b8a3f06b09ab16628f0f156c49a9ee0c038fd329bd969dcb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 78bdffad1800dcb44b795ed6666e7756926d47f86e98460728265cbf5e380543
MD5 bf6d4308dcb1b8a2baf32f1d9e8c7d56
BLAKE2b-256 7cfb25b2ac90b545686717f469021b5a18c17d4e9ec2afa9b0aeff64ab34e3e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp312-cp312-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 8732cc4593969ef29e64e5f4112de14288e2c64b42bbe6358128569566e805f5
MD5 b9c31730191caff2e9551e6a51652da7
BLAKE2b-256 7d24c3c36d9f8653dbd1ca7bb7a71fd387429474ebf651fd5572bd292f556442

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp312-cp312-manylinux_2_38_aarch64.whl
Algorithm Hash digest
SHA256 96e8baf711fa66191e10df302e8abeaa1f958666f0736c96e9f45884e2a8a763
MD5 c8dd5d7bf6224e91f27329df73d86dc2
BLAKE2b-256 380ca999672321f7e56a733ac5ce1ca4220b40d970fb2003447fbaffd790ab28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.6.0-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.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1761cef897861ad0e342efab6ec767b0db1e03692c852a9fa320bf9ca65acc77
MD5 4cd1d1bcdcdf80fd620364e17da5e0b1
BLAKE2b-256 817a46d72470ac20fc54587f4ce45fde549c0b73ec5c4906c8a3b0e683930d3e

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