fabricatio-novel
AI-powered novel generation — outline to publication-ready EPUB.
Full dataflow and generation-logic walkthrough: docs/superpowers/specs/2026-08-21-novel-generation-dataflow.md
Installation
pip install fabricatio[novel]
# or
uv pip install fabricatio[novel]
For the CLI tool:
pip install fabricatio-novel[cli]
Pipeline
Generation runs a staged, template-driven pipeline over a context tree
(NovelContext → ChapterContext → StoryContext → SceneContext), with every plan and
character state proposed by the LLM in batched calls:
- Metadata — outline →
NovelPlan(title, description, word count, global writing constraint, bible) - Characters — bible roster → one
CharacterSpan(start + end card) per character for the whole novel - Chapters — chapter plans, then N-1 boundary cards per character so chapter 1 starts at the roster start and the last chapter ends at the roster end
- Stories — per chapter: story plans, then S-1 boundary cards per character anchored on the chapter's start/end
- Scenes — per story: scene plans; the story's spans are broadcast to every scene, which is where the prose is actually written
- Assembly — the composed context tree becomes a
Novel;NovelBuilder(Rust/PyO3) produces the EPUB - Illustration (
wrionly) — one post-process pass proposes an image prompt per scene, renders it via ComfyUI, and embeds the PNGs in the EPUB
Character state is two pure cards, never an interpolated chain: the LLM is only asked for the coarsest boundary states, and code stitches them so continuity is guaranteed. Single-child levels inherit their parent's spans with no LLM call.
The CLI runs the pipeline as a staged workflow (DebugNovelWorkflow), persisting a
whole-tree JSON snapshot after every stage so any wrong result is traceable:
01_init → 02_metadata → 03_characters → 04_chapter_plans → 05_story_plans
→ 06_scene_plans → 07_scenes → 08_novel → 09_export
An optional RAG variant (RagDebugNovelWorkflow) retrieves WritingStyleDocument
entries from LanceDB once per story and renders them raw into the scene prompts.
The wri variant (RagIllustrationDebugNovelWorkflow) appends one final post-process
stage that illustrates every scene of the finished context before export; its stage
snapshots stay identical to wr's.
Data Flow & Prompt Assembly
The pipeline follows one principle: every LLM touchpoint is a template plus named context variables, and nothing else. Each stage renders a Handlebars template from the current context channel; planner calls parse the reply into validated pydantic models, while the single prose call captures raw paragraphs. Everything between calls — word-count allocation, character-arc stitching, prefix propagation, assembly — is deterministic code.
LLM call inventory
| Stage | Template · prompted with | Yields |
|---|---|---|
| Metadata | novel_metadata_requirement ← outline, language, constraint |
NovelPlan (adopted onto the root) |
| Roster spans | novel_character_span ← bible prompt block, title, description |
CharacterSpan[] — skipped without a roster |
| Chapter plans | chapter_plan ← outline, novel fields, word count, styles, constraint, characters |
ChapterPlan[] |
| Chapter boundaries | chapter_character_span ← roster spans, chapter titles/descriptions |
N−1 boundary cards per character |
| Story plans | story_plan ← chapter fields, styles, constraint, characters, cast |
StoryPlan[] |
| Story boundaries | story_character_span ← chapter spans, story titles/descriptions |
S−1 boundary cards per character |
| Scene plans | scene_plan ← story fields, styles, constraint, characters, cast |
ScenePlan[] |
| Scene prose | scene_requirement ← 11 variables, see below |
plain prose → Scene.content |
| Scene illustration | scene_illustration_prompt ← novel/chapter/story/scene titles, description, content, cast, illustration_constraint |
SketchSpec (prompt, negative prompt, LLM-chosen mp/prop) → PNGs rendered concurrently per scene (post-process) |
Templates live in templates/built-in/ and are selectable through the
Configuration keys below.
What flows down the tree
Each level materializes its plan via create(outline).update_from(plan).set_plan(plan),
with word counts assigned out-of-band via expect_ (the root takes the novel plan's
count, children take their allocated share); each level then passes state down:
- Running manuscript — an append-only
ContextLog; every walk seeds each child with exactly the bytes that precede it in the final book (iter_prefixed_contexts) - Setting bible — rendered once at the root into a
setting_bibleprefix entry; every descendant inherits it through its own log - Word budget — each level splits its
expected_word_countamong children by plan weight - Writing constraint — accumulated verbatim down the chain
- Character arcs — the roster fixes both endpoints; intermediate boundary cards are proposed per level and stitched in code; scenes receive the finished span list read-only
Composed prose flows back up: scene content enters the logs, and Novel.from_context
aggregates the whole tree for export.
How a scene prompt is assembled
The scene write is the only content-producing call, so its prompt is engineered for
provider prefix caching: every row above ## Scene is byte-identical across the scenes
of a story, and divergence starts exactly at the per-scene tail.
Key Classes
Context channels
| Class | Role |
|---|---|
NovelContext |
Root channel: outline, language, roster charactor_span, chapter_context |
ChapterContext |
Chapter channel: charactor_span, story_context, heading block |
StoryContext |
Story channel: charactor_span, scene_context, accumulated writing_styles |
RagStoryContext |
StoryContext subclass sealed with RagRetrieval settings; the RAG pipeline swaps it in before scene planning |
SceneContext |
Leaf channel: broadcast charactor_span, content (the only composed prose) |
CharacterSpan |
Start + end CharacterCard; derive_child_spans stitches boundary cards |
ContextLog / ContextEntry |
Append-only manuscript log per channel: append, branch (fork history), clear (fresh fork); renders the prefixed-content prompt streams |
SeriesBible |
characters name list + background_settings fact list; rendered once into a setting_bible prefix entry at the root |
Every channel carries its running manuscript as an append-only ContextLog: composed
blocks enter as frozen ContextEntry records, parents seed children with pure log snapshots,
and prompts render them exactly like the former prefixed-content strings. Logs support
with_entry/with_entries appends, branch() to fork alternative continuations from any
point (copy-on-write), and clear() which returns a fresh empty log while the original
history stays intact.
Plans & models
| Class | Description |
|---|---|
NovelPlan |
Novel metadata: title, description, word count, global constraint, bible |
ChapterPlan / StoryPlan / ScenePlan |
Weighted per-element plans (title, description, weight, style, constraint, cast) |
Scene / Story / Chapter / Novel |
Materialized output tree with word-count satisfaction |
SketchSpec / IllustratedScene |
LLM-proposed generation instruction — positive/negative prompt plus per-scene mp/prop (comfyui model); the scene output carrying its rendered illustration |
WritingStyleDocument / EnrichedDocument |
LanceDB-backed writing-style references |
Capabilities (mixins)
| Class | Description |
|---|---|
SceneCompose |
Scene requirement rendering + prose generation |
StoryCompose |
Scene planning, scene write preparation, serial scene composition |
ChapterCompose |
Story planning, draft_story_spans (S-1 boundary cards), story composition |
NovelCompose |
Metadata, prepare_character_span (roster), chapter planning, draft_chapter_spans (N-1 boundary cards) |
RAGCompose |
Retrieves style docs once per story; extends scene prompts |
BibleCompose |
Composes the setting bible from the outline once; immutable for the run |
IllustrateScenes |
Post-process illustration: batch-proposes one complete generation instruction (SketchSpec: prompt, negative prompt, LLM-chosen mp/prop) per pending scene (honoring illustration_constraint), renders them concurrently via ComfyUI into the run's images/ directory, and attaches IllustratedScene outputs |
Actions (staged workflow)
| Action | Stage |
|---|---|
InitNovelContext |
01_init — build context from outline/language/constraint/bible, then fire before_compose_novel_context |
ProposeNovelMetadataStage |
02_metadata — propose_novel_metadata |
PrepareCharacterSpanStage |
03_characters — prepare_character_span (roster) |
PlanChaptersStage |
04_chapter_plans — plan_chapters_phase + boundary drafting |
PlanStoriesStage / RagPlanStoriesStage |
05_story_plans — fires before_compose_chapter_context per chapter, then plan_stories_phase + boundary drafting (RAG seals each chapter's stories) |
PlanScenesStage / RagPlanScenesStage |
06_scene_plans — fires before_compose_story_context per story, then plan_scenes_phase (with RAG) |
ComposeScenesStage / RagComposeScenesStage |
07_scenes — writes scene prose, then closes each story (after_compose_story_context + post_process_story) and each chapter (after_compose_chapter_context + post_process_chapter) |
AssembleNovelStage |
08_novel — fires after_compose_novel_context, then assemble_novel |
IllustrateNovelStage |
DumpNovelStage whose post_process_novel resolves to per-scene illustration; adds no snapshot dir |
DumpNovelStage |
fires post_process_novel, then export — JSON always; EPUB and/or per-chapter chapters/NN.txt per format |
Every stage wraps one compose_novel chain segment and fires the chain's lifecycle hooks at their chain positions, so a hook override on a stage customizes the staged run exactly like it customizes the programmatic chain; the scene-level hooks fire inside compose_scenes_phase, exactly as they do in the chain.
Workflows
| Workflow | Description |
|---|---|
DebugNovelWorkflow |
Outline → exported novel (--format epub|txt|both), one stage per action with per-stage snapshots |
RagDebugNovelWorkflow |
Same, with writing-style RAG per story |
RagIllustrationDebugNovelWorkflow |
Same, plus a single post-process pass that renders a ComfyUI illustration for every scene into the EPUB |
Rust / PyO3
| Symbol | Description |
|---|---|
NovelBuilder |
Builder for EPUB 3.0 novels: title/description/authors, chapters (auto-XHTML), cover, fonts, CSS, TOC |
text_to_xhtml_paragraphs |
Plain text → <p>-wrapped XHTML paragraphs |
Configuration
All options below are read through the fabricatio configuration chain (see the
Configuration Guide). Set them under the
[ext.novel] table in fabricatio.toml, equivalently under
[tool.fabricatio.ext.novel] in pyproject.toml, or via
FABRICATIO_EXT__NOVEL__<FIELD_UPPER> environment variables.
[ext.novel]
novel_metadata_requirement_template = "built-in/novel_metadata_requirement"
| Option | Type | Default | Description |
|---|---|---|---|
novel_metadata_requirement_template |
str |
"built-in/novel_metadata_requirement" |
template used to extract the novel metadata (title, synopsis, word count) from the outline. |
chapter_plan_template |
str |
"built-in/chapter_plan" |
template used to plan the chapters of the novel from the outline and metadata. |
story_plan_template |
str |
"built-in/story_plan" |
template used to plan the stories of a chapter. |
scene_plan_template |
str |
"built-in/scene_plan" |
template used to plan the scenes of a story. |
scene_requirement_template |
str |
"built-in/scene_requirement" |
template used to write a single scene in full prose. |
render_chapter_xhtml_template |
str |
"built-in/render_chapter_xhtml" |
template used to render a chapter as a full XHTML document. |
scene_overlap_min_chars |
int |
40 |
minimum whitespace-normalized overlap between a new scene's prefix and the previous prose that gets stripped; shorter echoes are kept. |
scene_overlap_max_ratio |
float |
0.6 |
maximum fraction of a generated scene the overlap may cover before the content is kept untouched with a warning instead of stripped. |
setting_bible_characters_template |
str |
"built-in/setting_bible_characters" |
template used to propose the bible's character roster as a list of plain strings, one character per item. |
setting_bible_background_template |
str |
"built-in/setting_bible_background" |
template used to propose the bible's background settings as a list of strings. |
setting_bible_context_template |
str |
"built-in/setting_bible_context" |
template that renders the bible into the block seeded into the running manuscript prefix. |
setting_bible_export_template |
str |
"built-in/setting_bible_export" |
template used to render the bible as a human-readable markdown document. |
writing_style_as_prompt_template |
str |
"built-in/writing_style_as_prompt" |
template used to render writing style documents as prompts. |
enriched_as_prompt_template |
str |
"built-in/enriched_as_prompt" |
template used to render enriched reference documents as prompts. |
novel_character_span_template |
str |
"built-in/novel_character_span" |
template used to propose the novel roster as one CharacterSpan per character. |
chapter_character_span_template |
str |
"built-in/chapter_character_span" |
template used to draft the N-1 chapter-boundary cards from the novel roster spans. |
story_character_span_template |
str |
"built-in/story_character_span" |
template used to draft the S-1 story-boundary cards from the chapter's spans. |
scene_illustration_prompt_template |
str |
"built-in/scene_illustration_prompt" |
template used to propose one image-generation prompt for a composed scene. |
illustration_constraint |
str |
"" |
global style/content constraint merged into every scene illustration prompt proposal; empty when unset. |
illustration_negative_prompt |
str |
quality/anatomy exclusion list | negative prompt forwarded to ComfyUI for every scene illustration unless the proposal supplies its own. |
illustration_always_loras |
list[LoraEntry] |
[] |
LoRA entries chained into every scene illustration render before any selection — the slot for always-on style/character loras; each entry's trigger_words activate it in the prompt. Selectable loras live in the [ext.comfyui] loras catalog, where the LLM picks per scene on top of this chain. |
illustration_mp |
float | None |
None |
megapixel budget of each scene illustration's finished image (1.0 = 1,000,000 px); a per-scene proposal's mp wins, otherwise None falls back to [ext.comfyui] mp, then the active ComfyUI template's canvas. |
illustration_mp_max |
float |
1.2 |
hard ceiling on every scene illustration's megapixel budget, enforced at render time even when the LLM proposes a larger mp; the renderable quality brink (512x512x2.2x2.2) is ~1.27 MP, so 1.2 keeps a margin under it. |
illustration_prop |
Prop | None |
None |
aspect-ratio preset of each scene illustration — enum member names like prop_2_3 (portrait), coerced to the Prop enum at load; a per-scene proposal's prop wins, otherwise None falls back to [ext.comfyui] prop, then the active ComfyUI template's ratio. |
illustration_seed |
int | None |
None |
scene illustration sampler seed; None keeps the bundled ComfyUI template's seed. |
illustration_skip_existing |
bool |
True |
skip scenes whose illustration PNG already exists so re-runs fill only the gaps. |
illustration_timeout_per_image |
float |
210.0 |
per-image render timeout in seconds; the total render timeout scales linearly with the batch size (value x pending renders) since all renders share one ComfyUI queue; 0 falls back to [ext.comfyui] timeout. |
Access at runtime: from fabricatio_novel.config import novel_config.
Usage
CLI
# Generate a novel from an outline
fanvl w -o "In a world where dreams are currency..."
# Generate with writing style RAG (LanceDB)
fanvl wr -o "In a world where dreams are currency..." -rq "Hemingway terse prose style"
# Generate with RAG + ComfyUI scene illustrations embedded in the EPUB
fanvl wri -o "In a world where dreams are currency..." -rq "Hemingway terse prose style"
# Constrain generation with a setting bible + global writing constraint
fanvl w -o "..." -b settings/bible.json -c "first person view throughout"
# Export as plain text instead of (or besides) EPUB: chapters/01.txt, 02.txt, …
fanvl w -o "..." --format both
fanvl w -o "..." --format txt
# Create / update / show the setting bible
fanvl bible create -o "In a world where dreams are currency..." --out settings/bible.json
fanvl bible update settings/bible.json -o "..." --sections characters
fanvl bible show settings/bible.json
# Store reference texts as writing style documents in LanceDB
fanvl store-refs ./corpus/*.txt
fanvl enrich-refs ./corpus/*.txt -eg "Extract world-building facts"
Programmatic
from fabricatio_novel.workflows.novel import DebugNovelWorkflow
from fabricatio_core import Event
event = Event.instantiate("write")
event.payload["novel_outline"] = "In a world where dreams are currency..."
role = Role.with_bio(name="writer").subscribe(event, DebugNovelWorkflow).dispatch()
EPUB Builder (Rust)
from fabricatio_novel.rust import NovelBuilder, text_to_xhtml_paragraphs
xhtml = text_to_xhtml_paragraphs(raw_chapter_text)
builder = (
NovelBuilder()
.new_novel()
.set_title("My Novel")
.add_author("Author Name")
.add_chapter("Chapter 1", xhtml)
.add_inline_toc()
)
builder.export("output.epub")
Dependencies
fabricatio-core— Core interfaces, template management, LLM capabilitiesfabricatio-character— Character card modelspydantic— Data validation via models- Optional:
fabricatio-lancedb— writing style RAG,typer— CLI
License
MIT — see LICENSE
Metadata
Release files for fabricatio-novel 0.24.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 25.8 MB
Release files / fabricatio_novel-0.24.0-cp314-cp314-win_amd64.whl
| Download URL | fabricatio_novel-0.24.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d8d9634cee0e254a86f388db9d497b3e796889f567e3fe24df4d61eb44a33694
|
|
BLAKE2b-256 checksum How to use checksums |
1ed2497d622e0dbbca5022cf5ef8864c68518bba295e0a292bc51b3724fb5422
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | fabricatio_novel-0.24.0-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
90530428088798eed6af2bd1d733809e90096f58e2533a8ca33370af536dddf5
|
|
BLAKE2b-256 checksum How to use checksums |
842545f077e2df04cb1c3f271420da96723fb04542d090c96dbd9328119c573e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp314-cp314-manylinux_2_34_aarch64.whl
| Download URL | fabricatio_novel-0.24.0-cp314-cp314-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
6bd7b7efab4f2cb76b059b71981e9796af8d8a99c5f18cdc4da0ad3f093281ec
|
|
BLAKE2b-256 checksum How to use checksums |
9277f69ef34a1434305edc141ac0fd993b4bbe15e20320af9a399f6ba64c6a2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | fabricatio_novel-0.24.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0bbaca111464d44ef95d99ff251c0f41ddb486fe54949433d568c39ec5ab02e2
|
|
BLAKE2b-256 checksum How to use checksums |
49e4e86ed25d525928721b8066ff98e2ea5e1afdfaf2d3fd1f1d28c94c2b0b46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp313-cp313-win_amd64.whl
| Download URL | fabricatio_novel-0.24.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
43850364ed1dd0026344fcb7f80515313d813cd9b664c9d5ea463ba66bece7a5
|
|
BLAKE2b-256 checksum How to use checksums |
8855f9534c519541704d34c9629a21aeeebd3b7682d5a0b8a41d93ef5b0d38df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | fabricatio_novel-0.24.0-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
4e3cd02f767b1f1b8b574ec393acacfbf321cf39417a731d1266a90218bfaba7
|
|
BLAKE2b-256 checksum How to use checksums |
d046184cc81cecac85db06f2487ba56ff3ac6a395e90cae12300784041c3ec75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp313-cp313-manylinux_2_34_aarch64.whl
| Download URL | fabricatio_novel-0.24.0-cp313-cp313-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
4bb426349939d3047bf3facfe390cb8da268bf948a4e05d9178f04969e5ce9c1
|
|
BLAKE2b-256 checksum How to use checksums |
4591b9342c9fd81c0f2ceae0cc20984601e1a460acbc8c684531f571362c6056
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | fabricatio_novel-0.24.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
978b819149367eb8d545fea60f7780cfc38c816093d094a12eeb607c0042f32a
|
|
BLAKE2b-256 checksum How to use checksums |
d4f16ae4a749a511eabbc7401d89315703bb590b5843e4fc4f1e6df46bf9111d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp312-cp312-win_amd64.whl
| Download URL | fabricatio_novel-0.24.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ee185f0cf8c70e01b85db347a55656dc040165ca0667b02be8fffe0b02141540
|
|
BLAKE2b-256 checksum How to use checksums |
a663b0aee78d93134eaef181dc0cdd8fe523419467572d1fd3b4b5d723ca1000
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | fabricatio_novel-0.24.0-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
cdbd4dff1b85cef23d21a31d215c8649c3c5b281c30c0983c5b9e25a3ac4c85d
|
|
BLAKE2b-256 checksum How to use checksums |
3133b6e12915dbd2613ce778a1535b2ae723ea7472da31fbe04fdaeabac25fa9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp312-cp312-manylinux_2_34_aarch64.whl
| Download URL | fabricatio_novel-0.24.0-cp312-cp312-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
6b14017aae9982b77b3a834f56ae647fdae69013aa2611447bdbfcb3fc75c12f
|
|
BLAKE2b-256 checksum How to use checksums |
26d63c7f18a45fc9dedd4031420642c39384723105c1e14ee60921f581ab7054
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|
Release files / fabricatio_novel-0.24.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | fabricatio_novel-0.24.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f09b370ff9de388d3a8596cd97a6359f516dbf511466b4642fbc7547e20ac734
|
|
BLAKE2b-256 checksum How to use checksums |
3a1fbaaf2b61ec1c62af2b28c3c127b78a9f845692db1e02b71f8d3a8cd7ef57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|