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

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:

pip install fabricatio

🔍 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

GitHub: github.com/Whth/fabricatio

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

Uploaded CPython 3.14Windows x86-64

fabricatio_core-0.3.34-cp314-cp314-manylinux_2_34_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

fabricatio_core-0.3.34-cp314-cp314-manylinux_2_34_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

fabricatio_core-0.3.34-cp314-cp314-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio_core-0.3.34-cp313-cp313-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio_core-0.3.34-cp313-cp313-manylinux_2_34_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

fabricatio_core-0.3.34-cp313-cp313-manylinux_2_34_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

fabricatio_core-0.3.34-cp313-cp313-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio_core-0.3.34-cp312-cp312-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio_core-0.3.34-cp312-cp312-manylinux_2_34_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

fabricatio_core-0.3.34-cp312-cp312-manylinux_2_34_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

fabricatio_core-0.3.34-cp312-cp312-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: fabricatio_core-0.3.34-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f57b7cd721abb92f2535fcd4be265043e61c77a89b00fea3227f228004f5d389
MD5 aa9205bc51fec8e2886673eb82e09c95
BLAKE2b-256 22c28ef03eb95331bb04dd4b3d23f13e4bd6b7a7615427ec5012edb1bbfc5f72

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.3.34-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.3.34-cp314-cp314-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 225ac972e939c345380b8a16a610c92ad32ef330ff4cc8aea4036def920238b2
MD5 a8f356452b34a7db8e174444bea34a9e
BLAKE2b-256 d6440047072149e2ccf00c116bb94cca3e34e90c0251b7fab8075488680ca5a0

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.3.34-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.3.34-cp314-cp314-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 4.8 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e609137f05c0a1e0c2dfbcf1904b45751e38280cd0a7a68b53420e3ed21f3faa
MD5 7d2d232812d29d248d007eea218f1ab7
BLAKE2b-256 1db684419b2ac58bb49ae8d117e6d8e4b800b41f1cbac2e25fc4998101506f21

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.3.34-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5d890ce37a821da975660cd1b7462e167359eb36e055cd82e9f67ce64497f01
MD5 c817a990664e8db0f8686d652b1011e1
BLAKE2b-256 4e5eed7d910edc2612925865099f111131f5540330e1787015b91b9585c84895

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.3.34-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f889e13413a1738132a26d16a3d99c47071be9a70cf8ee5f267fb34035f8c843
MD5 2421479e7ff2aa3fb526fcae7d9686e5
BLAKE2b-256 3ac2f6e6ee808628e6529c7960412daf264b10486240abf2df2a705cb0a47432

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.3.34-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.3.34-cp313-cp313-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 214f8d2672af5d24643afb0cc03280eb7ba8b0ed127cff6dc7793ddf6eca180c
MD5 9d19bdf0858dcef3a3fa4d92f354d0dc
BLAKE2b-256 771d7f42d42c10f7eff2c70bfea5c5c3c9c1e1baa839f1c074590f6883201b37

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.3.34-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.3.34-cp313-cp313-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 4.8 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 54dfb2292f3e1fb4f1054645f88ed6ca2ca650a2da779d91df7238fa22d700bb
MD5 3412508aad43dc2b9582f3247932ccc0
BLAKE2b-256 3da61263a85caa6b88c26b41395319101e83b03ebc17524224f6766d3fc566a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.3.34-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ccdf1bff8df6019f63b117b0a9bf6841c94e58b1b7041a06f58495a75a60a2b
MD5 0f21e5b3f8d765fd62a736ae7d4d1477
BLAKE2b-256 bbf0932901631821292493341f7d88625118a16b815074e5123e43724a596a09

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.3.34-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 afd923e2718916fe74826654318972d17699146ce169466d2c9f47f0e7ab8d13
MD5 0fb1eef1e6fa2323fbfb3e6e3d55a46b
BLAKE2b-256 302a7ad5dc582a20c610dac69d14dcc25c0198fd02da3ae5e8c43d7fcd1a3d5e

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.3.34-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio_core-0.3.34-cp312-cp312-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fe8f7f17a6419b9793527614083d9ac2e441d298c72156bad2d2bbcb5c0f0f0a
MD5 bbb4abcfd67f681e2a869274f30dabb7
BLAKE2b-256 7c790f258b7f07f6a2d0b432165377f6b1a561e1fcc8072b19b051dec066e350

See more details on using hashes here.

File details

Details for the file fabricatio_core-0.3.34-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio_core-0.3.34-cp312-cp312-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 4.8 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2d589ac1ac79fcf7ca65a098385a56e9abb916857553d7b0d6ec10877c33cdb0
MD5 2a3bb25df3661901ffb92321f847a89b
BLAKE2b-256 f525c0832eeef5491d542a8ce9d3397a3000cd6508f1ca869df02d0155533a42

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fabricatio_core-0.3.34-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"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.3.34-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8568ce95bfbfb387d4a4ec5ff2db30c36ce220743ee725ddb252b99b58da9ef
MD5 d44944c6205319edc2cf908d60160c8c
BLAKE2b-256 bc14452cd680dee2d88bd7da4715f4350c40426747443e25e1f16b623e981fcc

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