Skip to main content

A LLM multi-agent framework.

Project description

Fabricatio Logo

MIT License Python Versions PyPI Version Ask DeepWiki PyPI Downloads (Week) PyPI Downloads Bindings: PyO3 Build Tool: uv + maturin

Build Package Ruff Lint Tests Coverage Status Documentation Status GitHub Issues GitHub Pull Requests GitHub Stars


Overview

Fabricatio is a streamlined Python library for building LLM applications using an event-based agent structure. It leverages Rust for performance-critical tasks, Handlebars for templating, and PyO3 for Python bindings.

Features

  • Event-Driven Architecture: Robust task management through an EventEmitter pattern.
  • LLM Integration & Templating: Seamlessly interact with large language models and dynamic content generation.
  • Async & Extensible: Fully asynchronous execution with easy extension via custom actions and workflows.

TODO

  • Add api support.
    • Define API types + REST route handlers + wire into axum server
    • Add CORS/error middleware + Python binding for server config
    • Integration tests + API docs
  • Run as mcp server.
    • Feature flag + McpServer struct + tool registry + tools/list
    • stdio + HTTP transports + tools/call dispatch
    • Register Fabricatio tools as MCP tools + Python binding + tests
  • Finalize the webui.
    • Chat interface + API client + WebSocket/SSE streaming
    • Config panel + agent status dashboard
    • Error handling + loading states + UX polish
    • Wire Python execution bridge — hook bridge.py into Rust /api/execute via PyO3 so workflows actually run (currently just enqueues)
    • Workflow save/load — persist workflows as JSON (file or SQLite), load into editor
    • Clean up scaffolding — remove TheWelcome, HelloWorld, counter.ts, unused AboutView, default Vue assets
    • Undo/Redo — command pattern on workflow store (add/remove/move node, add/remove edge)
    • Dark/Light theme toggle — CSS variables + Pinia persistence
    • Real-time LLM token streaming — surface WsMessage::LlmToken in UI for streaming text output during generation
    • Workflow import/export — download as JSON, import from file, share workflows
    • Responsive layout — collapsible sidebars on mobile, resizable panels
  • Add ComfyUI integration.
    • Package skeleton + ComfyUIClient for prompt queue, progress polling, image retrieval
    • Workflow template system with dynamic parameter injection
    • ComfyUIAction + Python bindings + integration tests
    • WebSocket real-time progress tracking
    • End-to-end integration test with running ComfyUI instance
  • Novel scene image generation with ComfyUI.
    • Scene extraction from novel content + prompt engineering for image generation
    • SceneImageAction in fabricatio-novel calling fabricatio-comfyui to generate scene illustrations
    • Image embedding into novel output (EPUB/Typst) + configurable style/template selection
    • Per-chapter image caching + regeneration on content changes
  • Add Plugin system.
    • Plugin protocol + registry + lifecycle (load/unload)
    • Hook points in core lifecycle + entry-point discovery
    • Plugin config support + validation + tests
  • Replace litellm with native rust impl
    • Port deprecated mock utils to thryd impl
    • Port tests to new mock utils
    • Sync documentations
    • Router cache support ttl and eviction
  • Add worktree-based isolated development subpackage
  • Add level-based context compression subpackage
    • Package skeleton + CompressionLevel enum + compression strategies
    • Async compression + Python bindings + tests
  • TreeSetter-based ACE
    • tree-sitter dep + AST node types + tree edit operations (insert/replace/delete/move)
    • TreeSetter orchestrator + Python bindings + multi-language round-trip tests
  • Self-Extensible Agent
    • Capability protocol + runtime registry + dynamic method injection on Role
    • Config-based discovery + hot-reload + tests
  • Add more examples
  • Write missing examples (Structured Output, Extract, Improve)
  • Document undocumented examples + cross-link use-cases.rst + examples index
  • ToolExecuter exec results feedback to llm
    • Surface errors via ApplicationError + ResultCollector.error() + last_error template param
  • Use stubgen feat and cfg_attr to make the stub generation as an opt-in for all mixed packages.
  • Use Thryd impl to move some requests to rust side
    • All core LLM operations already routed through rust.router_usage
  • Add Texts-based skill system, as a subpackage
    • Skill YAML/JSON schema + loader + directory scanner
    • Wire into Role + validation + example skill file + tests
  • Port build workflow to Justfile
  • thryd::Router use concurrent safe impl
  • Extract Router from fabricatio-core into standalone fabricatio-router crate
  • Replace parser with native rust impl
  • Better memory impl
  • RAG package refactor, move rerank and embedding to thryd
    • Add Reranker support in thryd
    • TEI as Provider in thryd (RerankerModel for OpenAI-compat: wontfix — OpenAI doesn't support rerankers)
    • Wire rerank() into Router Python class + add UseReranker capability
  • Add embedding and rerank mock support to fabricatio-mock
    • Add add_or_update_dummy_embedding_model and add_or_update_dummy_reranker_model to Router
    • Add setup_dummy_embeddings / setup_dummy_reranks + response builders in fabricatio-mock
    • Tests for embedding and rerank mock paths
  • Replace UseLLM with native rust impl
    • Fix the mock utils that is break by the replacement.
    • router support no_cache
  • Diff use Hashline impl instead of StringGrep
    • Integrate rho-hashline crate + hash-based line anchoring in Rust
    • Add compute_hash, format_hashes, parse_hashline_anchor, apply_* functions
  • Add Diff.format_with_hashes() method + Python exports + 22 tests
  • Add high-level HashlineDiff wrapper for hashline API
    • Diff dataclass with anchor and line-number fields
    • from_anchors() and from_line_range() factory methods
    • apply() with line_range and pattern matching modes + tests
  • Placeholder based multiple-agents edits
  • Convert fabricatio-rag to a pure python package
    • Extract lancedb impl into a seperate package
  • fabricatio-novel support rag
  • Lancedb integration refactor
    • Refactor fabricatio-typst
  • Milvus integration refactor
  • Novel generation fix
  • Embedding fail without any debug info fix
  • sparse cache for embedding
  • Thryd router support retry
  • Add VFS-based sandbox subpackage for isolated LLM file operations
    • Rust crate: VirtualFS trait + in-memory tree (read/write/list/delete/stat) + overlay mount system (copy-on-write over real paths)
    • Rust crate: diff snapshot & apply — SandboxSession tracking all mutations, producing a unified diff, and optionally writing changes back to real FS
    • Python bindings (PyO3) for VirtualFS, SandboxSession, overlay mounts
    • Integration with fabricatio-core file I/O hooks so Actions transparently operate inside a sandbox
    • Tests — Rust unit tests for VFS ops + overlay + diff/apply; Python binding smoke tests
  • Typst compilation
    • Integrate typst-rs or shell out to typst compile so fabricatio-typst Article model produces PDF output
    • Template library for common document types (paper, report, slides)
    • Python bindings + CLI (fabricatio-typst compile) + tests
  • fabricatio-rag test suite
    • Unit tests for abstract RAG capability (add_document, afetch_document, refined_query, ranking)
    • Integration tests with fabricatio-lancedb and fabricatio-milvus backends
    • Edge-case tests: empty corpus, duplicate documents, concurrent add/fetch
  • Character system completion
    • Wire CharacterCard + CharacterCompose into fabricatio-novel chapter generation for consistency
    • Character relationship tracking (affinity graph, interaction history)
    • Actions + workflows + tests for batch character generation and validation
    • Mental model: Big Five + Maslow combined psychological state engine
      • Data models: BigFiveProfile (5D float 0-100) + MaslowLevel enum + MentalState (merged personality + need + emotion + cognitive bias)
      • BigFiveProfile.distance_to() for personality similarity; as_vector() for serialization
      • EventImpact structured model: threatens_need, fulfills_need, personality_shift, emotion, emotion_intensity, triggers_bias
      • MindEngine.analyze_event(): LLM-driven event → EventImpact extraction with MentalState as context
      • MindEngine.apply_impact(): deterministic rules for Maslow level drop (threat-based instant) and rise (satisfaction-accumulation threshold ≥3)
      • Age-based personality shift scale: child (3.0×), adolescent (1.5×), young adult (0.5×), adult (0.2×)
      • MindEngine.build_system_prompt(): translate MentalState into LLM hard constraints (personality rules, need focus, emotion style, cognitive bias examples)
      • MentalState persistence: snapshot per event for rollback and trajectory visualization
      • Personality archetypes: pre-defined BigFiveProfile points (hero, villain, sage, fool, outcast) + closest_archetype() lookup
      • DIAMONDS event taxonomy (Rauthmann et al., 2014): 8-dimensional situational classification replacing boolean event flags
        • SituationProfile model with 8 float dimensions (Duty, Intellect, Adversity, Mating, pOsitivity, Negativity, Deception, Sociality)
        • LLM-driven event → SituationProfile extraction (structured output with per-dimension 0-1 scores)
        • Dimension → distortion mapping: Adversity→catastrophizing, Deception→personalization, Negativity→emotional_reasoning, etc.
        • Wire into CognitiveEngine._rule_filter(): use dimension scores instead of boolean flags for distortion boost calculation
      • CBT cognitive distortion engine (hybrid: rule filter + LLM refinement)
        • CognitiveDistortion enum (catastrophizing, black-and-white, personalization, emotional reasoning, should-thinking)
        • CognitiveProfile: per-character distortion tendency weights (0-100 each) + most_likely() sort
        • DistortionAnalysis structured model: triggered_distortion, internal_monologue, reasoning
        • CognitiveEngine._rule_filter(): DIAMONDS dimension scores → distortion score boost
        • CognitiveEngine._generate_monologue(): cheap LLM call for internal monologue only (high-confidence path)
        • CognitiveEngine._llm_analyze(): full LLM structured extraction from top-3 candidates (low-confidence path)
        • Confidence threshold: if top candidate score > 70 → use rule result + monologue generation; else → full LLM analysis
        • Wire into MindEngine: CBT as event pre-filter before Maslow impact assessment (distortion shapes interpretation, interpretation shapes need impact)
      • Linguistic style decoupling (TTM, Zhan et al., 2025): separate "what to say" from "how to say"
        • LinguisticStyle model: preferences (natural language description), common_pronouns, common_modals, common_adjectives, style_references
        • extract_style(): LLM-driven extraction from character's historical dialogues
        • Three-stage generation: styleless response (personality+memory) → memory-checked response (RAG correction) → stylized response (style transfer)
        • Style references: retrieve semantically similar utterances from character history as rewriting templates
        • Wire into MindEngine.build_system_prompt(): inject linguistic style constraints alongside personality and emotion
      • Embodied perception (EFT-CoT, Du et al., 2026): somatic awareness as first stage of emotional processing
        • Three-stage emotional pipeline: Embodied Perception → Cognitive Exploration → Narrative Intervention
        • SomaticState model: body sensations mapped from emotion type + intensity (e.g. fear→racing heart, tight chest, trembling)
        • CognitiveExploration: extract core beliefs and underlying thoughts from somatic experience
        • NarrativeIntervention: restructure character's self-narrative based on cognitive insights
        • Wire into MindEngine: emotion triggers somatic state → somatic state informs prompt constraints for physical descriptions
      • Qualitative Suffering States (Emotional Cost Functions, Mopgar, 2026): irreversible trauma that reshapes character
        • QualitativeSuffering model: what_was_lost, the_void, how_it_changed_me, anticipatory_dread
        • Four-component architecture: Consequence Processor → Character State → Anticipatory Scan → Story Update
        • Experiential dread: from character's own lived consequences
        • Pre-experiential dread: acquired without direct experience (from others' stories or cultural knowledge)
        • Suffering accumulates and reshapes character — not a temporary state but a permanent modification to MentalState
        • Wire into MindEngine: traumatic events create QualitativeSuffering entries that persist and influence future interpretations
      • Three-layer separation: analysis (LLM with schema) → update (deterministic rules) → alignment (prompt injection)
      • Tests: Maslow level transitions, Big Five drift under events, age scaling, prompt generation, linguistic style extraction, somatic state mapping, suffering accumulation, end-to-end process_and_respond
      • Evaluation framework (EMgine methodology + three-layer validation)
        • Layer 1: Theory consistency — automated assertions checking psychological predictions (target > 90% pass rate)
        • Layer 2: Reader perception — LLM-as-Judge + human evaluation for believability (target > 7.5/10)
        • Layer 3: Trajectory consistency — automated checks for sudden jumps, reversals, dead spots across event sequences
        • Literary character test suite: Hamlet, Lin Daiyu, Julien Sorel — known characters as regression test baseline
        • evaluate_model() orchestrator running all three layers against test suite
  • Judge integration with novel + RAG
    • Wire EvidentlyJudge / VoteJudge into novel pipeline for chapter quality gating
    • Add RAG relevance scoring action using judge capabilities
    • Actions + workflows + tests
  • Web search action
    • WebSearchAction in fabricatio-actions backed by search API (Tavily/SerpAPI/DuckDuckGo)
    • WebScrapeAction for extracting content from fetched URLs
    • Wire into research workflow + tests
  • Add TTS subpackage (abstract interface + provider implementations).
    • fabricatio-tts pure python package: UseTTS capability mixin + TTSConfig + AudioChunk streaming model + SynthesisResult output type
    • TTSProvider protocol (async synthesize(text, voice, params) → AsyncIterator[AudioChunk]) + voice discovery + SSML support
    • Provider implementations as separate packages (e.g. fabricatio-tts-openai, fabricatio-tts-elevenlabs, fabricatio-tts-piper) each wiring TTSProvider to its backend API
    • Event-system bridge: emit tts:chunk, tts:start, tts:end events for real-time streaming playback + interruption via Event
    • Integration with fabricatio-core templates (Handlebars {{speak}} helper) + Python bindings + tests
  • Add session replay + workflow continue.
    • Record step timeline in WorkFlow.serve(): (step_index, action_name, output_key, duration_ms, success, error) per action — ~30 lines instrumentation
    • Auto-checkpoint before each action via CheckPointStore.save() — leverage existing shadow git for workspace rollback on resume
    • fabricatio-session crate: SQLite-backed run log + replay engine — <1KB per workflow run, no context dict serialization needed (thryd cache + checkpoint handle reconstruction)
    • WorkFlow.resume(run_id): read run log → checkpoint.reset(last_commit) → re-run steps 1..N-1 (LLM cache hits, instant) → fresh execution at failed step N
    • Actions declare idempotent: bool — non-idempotent steps flagged for manual review instead of auto re-run
    • WebUI timeline viewer: scrub through action execution history, per-step expand for LLM input/output
  • Add multimodal LLM support (aaskv — text + image input).
    • ContentPart enum (Text / ImageUrl) + content: Vec<ContentPart> field on CompletionRequest — backward compatible (empty content falls back to message string)
    • OpenAI serialization: switch .content(message) to .content(content_parts) using async-openai's existing ChatCompletionRequestMessageContentPart types
    • Cache key update: prepare_input_text concatenates text parts + image URLs for deterministic blake3 hashing
    • fabricatio-router PyO3: completion_v(send_to, text, images: Option<Vec<Vec<u8>>>) — raw bytes → base64 data URIs, MIME sniffing, construct ContentPart list
    • Python UseLLM.aaskv(text: str | list[str], images: bytes | list[bytes] | None) — clean interface, no ContentPart exposure
    • Tests: text-only backward compat, single image, multi-image, batch mode
  • Add cargo clippy + cargo test to CI
    • Fix ruff CI no-op (installs ruff but never runs ruff check)
    • Add clippy + cargo test steps to .github/workflows/tests.yaml matrix

Installation

# install fabricatio with full capabilities.
pip install fabricatio[full]

# or with uv

uv add fabricatio[full]


# install fabricatio with only rag and rule capabilities.
pip install fabricatio[rag,rule]

# or with uv

uv add fabricatio[rag,rule]

You can download the templates from the github release manually and extract them to the work directory.

curl -L https://github.com/Whth/fabricatio/releases/download/v0.19.1/templates.tar.gz | tar -xz

Or you can use the cli tdown bundled with fabricatio to achieve the same result.

tdown download --verbose -o ./

Note: fabricatio performs template discovery across multiple sources with filename-based identification. Template resolution follows a priority hierarchy where working directory templates override templates located in <ROAMING>/fabricatio/templates.

Usage

Basic Example

"""Example of a simple hello world program using fabricatio."""

from typing import Any

# Import necessary classes from the namespace package.
from fabricatio import Action, Event, Role, Task, WorkFlow, logger


# Create an action.
class Hello(Action):
    """Action that says hello."""

    output_key: str = "task_output"

    async def _execute(self, **_) -> Any:
        ret = "Hello fabricatio!"
        logger.info("executing talk action")
        return ret


# Create the role and register the workflow.
(Role()
 .subscribe(Event.quick_instantiate("talk"), WorkFlow(name="talk", steps=(Hello,)))
 .dispatch())

# Make a task and delegate it to the workflow registered above.
assert Task(name="say hello").delegate_blocking("talk") == "Hello fabricatio!"

Examples

For various usage scenarios, refer to the following examples:

  • Simple Chat
  • Structured Output
  • Extraction
  • Content Improvement
  • Retrieval-Augmented Generation (RAG)
  • Article Extraction
  • Propose Task
  • Code Review
  • Write Outline

(For full example details, see Examples)

Configuration

Fabricatio supports flexible configuration through multiple sources, with the following priority order: Call Arguments > ./.env > Environment Variables > ./fabricatio.toml > ./pyproject.toml > <ROMANING>/fabricatio/fabricatio.toml > Builtin Defaults.

Below is a unified view of the same configuration expressed in different formats:

Environment variables or dotenv file

FABRICATIO_LLM__SEND_TO=openai/gpt-3.5-turbo
FABRICATIO_LLM__TEMPERATURE=1.0
FABRICATIO_LLM__TOP_P=0.35
FABRICATIO_LLM__STREAM=false
FABRICATIO_LLM__MAX_COMPLETION_TOKENS=8192
FABRICATIO_DEBUG__LOG_LEVEL=INFO

fabricatio.toml file

[debug]
log_level = "DEBUG"


[llm]
send_to = "base" # send req to `base` group by default
max_completion_tokens = 32000
stream = false
temperature = 1.0
top_p = 0.35


[routing]
providers = [
    { ptype = "OpenAICompatible", key = "sk-...", name = "mm", base_url = "https://api.example.com/v1/" }
]

completion_deployments = [
    { id = "mm/a-completion-model", group = 'base', tpm = 100_000, rpm = 1000 }
]
cache_database_path = "path/to/.cache.db"

pyproject.toml file

[tool.fabricatio.debug]
log_level = "DEBUG"


[tool.fabricatio.llm]
send_to = "base" # send req to `base` group by default
max_completion_tokens = 32000
stream = false
temperature = 1.0
top_p = 0.35


[tool.fabricatio.routing]
providers = [
    { ptype = "OpenAICompatible", key = "sk-...", name = "mm", base_url = "https://api.example.com/v1/" }
]

completion_deployments = [
    { id = "mm/a-completion-model", group = 'base', tpm = 100_000, rpm = 1000 }
]
cache_database_path = "path/to/.cache.db"

Contributing

We welcome contributions from everyone! Before contributing, please read our Contributing Guide and Code of Conduct.

License

Fabricatio is licensed under the MIT License. See LICENSE for details.

Acknowledgments

Special thanks to the contributors and maintainers of:

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

Uploaded CPython 3.14Windows x86-64

fabricatio-0.32.2-cp314-cp314-manylinux_2_34_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

fabricatio-0.32.2-cp314-cp314-manylinux_2_34_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

fabricatio-0.32.2-cp314-cp314-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fabricatio-0.32.2-cp313-cp313-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.13Windows x86-64

fabricatio-0.32.2-cp313-cp313-manylinux_2_34_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

fabricatio-0.32.2-cp313-cp313-manylinux_2_34_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

fabricatio-0.32.2-cp313-cp313-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fabricatio-0.32.2-cp312-cp312-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.12Windows x86-64

fabricatio-0.32.2-cp312-cp312-manylinux_2_34_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

fabricatio-0.32.2-cp312-cp312-manylinux_2_34_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

fabricatio-0.32.2-cp312-cp312-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file fabricatio-0.32.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6053c7a27b69263fb25eb003fe04bead277b79fd88d9e796bf062ebf31df898d
MD5 bbd59fc4163466462de6143cdfc39734
BLAKE2b-256 30f890acbe7a00c7b8cd67864b25b787bbae9e630399b632e6a1acb3736952ca

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp314-cp314-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 305e01bde0677a1dd23c0943713153bcf69f12edf4e38e87327ab16d6119377c
MD5 ced1e71a9e4999667aaffc9eb08682ce
BLAKE2b-256 b5cd2139dfdf2576bdb0f257844139e25d150e112f05d02741f1f9eb97b53751

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp314-cp314-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.14, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 0f06a944cfdb6a03f94915b723623e2715f33396367d591737623b33e4f457be
MD5 6eb93b755990b09820253fa510368565
BLAKE2b-256 ea5c964745b0b9d13a9a20b1691e199ce3d7ee5fdd1410ddfc89ea01782cb507

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bb630bfa0499355cd73be2e1038f45161d016cb8baabc76c9235c5fda2a5002
MD5 a9b4937e4dfe29f8df433f81e8c58af1
BLAKE2b-256 05f251edb3d2e9695818488e8494c5f50cb54f86204f942680aa87858ee0068b

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 17866794ebeecca01113e315f2c521c26a8097c43920b51cd21c159f6839c270
MD5 dcc09a8d739b8af1a17aa1eeacab0f3f
BLAKE2b-256 c194e11def920390684e05863cb697008480dfc31294d26b95a48ebdb5a7c097

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp313-cp313-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9e6d3aac050da7e8fa9539fe42643521a417a9506cf1cd801df6374d57f50ea1
MD5 8aa7dc961441c1ef83123cbbe5e9ecd8
BLAKE2b-256 edd2858241cffc300c379afca4c76ca8a08488849ccebd817021e86b0caee255

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp313-cp313-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.13, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 72f4be498e3edfc8cdcb1c4d610e49dc9e34b31f0a60d3e9db98ce01b37aff90
MD5 34891a895362a84f759953fb2256e51e
BLAKE2b-256 54f2e66c6f16a1d8cc3324e6f6d3585a1b23f1c3a06d875c716e969b58741d39

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ced08250de66a25fe506187afa5450530e88b51e0d48617501d7c2763513bf3
MD5 ed122d8c116dc0949fa4a8b4b549adf8
BLAKE2b-256 bce7f3263880a3acaedc79a08bd5d468dad58d42d8a51d35c6f2517150234fd4

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 33f1ff82f2bb2ded1e69fb22c12a67bdd7fef105f0e761ed166af493bf99fa75
MD5 2b391112dcbae849d5711e561f3aca1c
BLAKE2b-256 a950f899e18d83aad93b197141dfca1ec5e233f2858b5509ece7df91bfb58b64

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp312-cp312-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 07924c4940f49e956cc793efe18df2cef59dbc3538285c36d6c6825cbd63481d
MD5 497955b8d29a901266b9daa8f33f7ca3
BLAKE2b-256 8ff7cdace52242544e4ed5b73096e64989bc3f4b100780d1c9cd34fc9f1a4473

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp312-cp312-manylinux_2_34_aarch64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 42d9010dcf92a56707362fa4d7d7c0b741c0418f912d282987425f0a6d2c111e
MD5 25e2e2ccb9cccc1c9aa14b4253230927
BLAKE2b-256 30ea7dec3c8ba4312a3b3e3f2a68518791ccae9117e0d76cda1e7a07fa5979ae

See more details on using hashes here.

File details

Details for the file fabricatio-0.32.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fabricatio-0.32.2-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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-0.32.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 85dc9ecbc1f12e04370b4afb90d53480955b2438a0a9488080608efd57dfbc0b
MD5 48022b229fed1929dd206a33e61e5867
BLAKE2b-256 9419355f7e3ef630c797bee2e4b7aa52f420b0b4869ed6efac6b87c7bd0e6f03

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