Skip to main content

NeoTextSynthesizer - High-performance OCR training data generator

Project description

NeoTextSynthesizer (neots)

NeoTextSynthesizer is a high-performance synthetic OCR training data generator built with C++.

NeoTextSynthesizer generates realistic text images with diverse fonts, backgrounds, and visual effects — ideal for training Text Recognition models.

Features

  • High Performance: Multi-threaded C++ core with shared glyph cache, background image cache, and lock-free rendering pipeline
  • Multi-language Support: Built-in support for Chinese (Simplified & Traditional), Japanese, Korean, English, German, French, Italian, Spanish, Russian, and extensible to any language
  • Flexible Text Sampling: Sequential corpus streaming and random character sampling with nested probability-weighted groups
  • Rich Visual Effects: Random fonts, font sizes, scale variations, italic/underline/strikethrough effects, diverse backgrounds (solid colors, gradients, real images)
  • Python Integration: Full Python API via nanobind with NumPy/PIL support
  • CLI Tools: neots for workspace initialization and batch generation, flat-wiki for Wikipedia corpus generation
  • Cross-platform: Supports Linux x86_64, Linux AArch64, macOS ARM64, and Windows x86_64

Installation

Install pre-built wheels from PyPI:

pip install neots

Quick Start

CLI Usage

# Initialize a workspace
neots init

# Generate 10,000 single-line text images with auto-detected worker count
neots singleline --total 10000

# Generate with custom config and workers
neots singleline --config config.yaml --total 50000 --workers 8

# Show help
neots help

Wikipedia Corpus Generation (CLI)

# Generate a Chinese corpus from Wikipedia
flat-wiki --lang zh --output ./corpuses/zh.txt --min_len 5 --sample_count 10000

# Generate with vocabulary filter
flat-wiki -l en -o ./corpuses/en.txt -v dictionary.txt -n 5000

Python API

from neots import SingleLineTextGenerator

# Initialize from config file
synth = SingleLineTextGenerator.from_config_file("config.yaml")

# Initialize from a dictionary
config = SingleLineTextGenerator.get_default_config()
config["generate"]["output_height"] = 64
synth = SingleLineTextGenerator.from_config(config)

# Initialize from built-in default preset
synth = SingleLineTextGenerator.from_default()          # full preset
synth = SingleLineTextGenerator.from_default("minimal")  # minimal preset

# Batch generate (blocks until complete)
generated, failed = synth.generate(total=10000, workers=8, show_progress=True)
# print("generaed:", generated)
# print("failed:", failed)

# Generate single image as PIL Image
img = synth.generate_instance("Hello World", type="PIL")
img.save("sample.png")

# Generate as NumPy array (H, W, 3) RGB
arr = synth.generate_instance("测试文本", type="numpy")

# Save directly to file
synth.generate_instance("サンプル", type="file", path="output.png")

# Export default config
SingleLineTextGenerator.output_default_dict("my_config.yaml", type="yaml")
SingleLineTextGenerator.output_default_dict("my_config.json", type="json")

Corpus Generation (Python API)

from neots import FlattenWikipediaGenerator

gen = FlattenWikipediaGenerator(
    lang="zh",                        # Language code
    output="./corpuses/zh.txt",       # Output file path
    vocab="dictionary_extended.txt",  # Optional: filter by vocabulary
    min_len=5,                        # Minimum line length
    sample_count=10000,               # Number of articles to process
)
gen.generate()

Configuration

Configuration is structured into four sections. See config.yaml for a complete example after initialization.

text_sampler

Controls the basic text sampling parameters and font selection strategy.

Parameter Default Description
min_targets 5 Minimum characters per image
max_targets 50 Maximum characters per image
font_size 55 Base font size in pixels
vertical_prob 0.2 Probability of vertical text
sample_strategy "font-first" Strategy for handling missing characters: "font-first", "sample-first", or "auto-fallback"
font_list ["./fonts"] List of font files or directories containing fonts

Sample Strategies

  • font-first: Selects a font first, then samples text. Any characters not supported by the chosen font are discarded.

    Note: This strategy may produce shorter text, and fail generations if none of the characters are supported in the chosen font.

  • sample-first: Samples text first, then finds a font that supports all characters. If none exists, chooses the font with the highest coverage and discards unsupported characters.
  • auto-fallback: Selects a primary font and samples text. For unsupported characters, it attempts to find a fallback font to render them. auto-fallback is the default strategy and we recommend using it.

random_config

Defines how text strings are sampled for rendering. Each entry has a probability weight and a data source.

Type Description
sequential Streams text from a flat file. Ideal for natural language corpuses.
random Randomly samples from character files or nested sub-groups.
random_config:
  # Stream Chinese text from a corpus file
  - type: sequential
    prob: 0.20
    from_file: ./corpuses/zh.txt

  # Random character sampling with nested groups
  - type: random
    prob: 0.20
    sub_items:
      - prob: 0.4
        from_file: ./symbols_characters/characters.txt
        section: [~, 3500]    # First 3500 lines only
      - prob: 0.1
        from_string: " "      # Inline source

Key parameters:

  • prob: Probability weight (auto-normalized)
  • from_file / from_string: Data source
  • section: [start, end]: Slice of lines (~ = null = beginning/end)
  • sub_items: Nested probability groups (recursive)
  • traditional_prob: Probability of simplified → traditional Chinese conversion

bg_sampler

Controls background selection:

Parameter Default Description
bg_image_prob 0.3 Probability of using a real background image
gray_bg_prob 0.7 Probability of gray vs. colored background
text_color "auto" Text color (can be "auto", "#RRGGBB" hex format, or a range like ["#000000", "#FFFFFF"])
bg_color "auto" Background color (can be "auto", "#RRGGBB" hex format, or a range like ["#000000", "#FFFFFF"])
bg_list ["./backgrounds"] List of background image files or directories

post_process

Controls visual appearance:

text_effects

Parameter Default Description
effect_prob 0.2 Probability of text effects (italic/underline/strikethrough)
partial_effect_prob 0.8 Probability that effects apply to only part of the text

text_paste

Parameter Default Description
scale_range [0.7, 1.1] Random scale factor range
margin_range [-5, 20] Horizontal margin range (pixels)
offset_prob 0.5 Probability of random position offset
h_offset_range [-7, 7] Horizontal offset range
v_offset_range [-5, 5] Vertical offset range

transforms

Parameter Default Description
rotation_prob 0.3 Probability of applying rotation
rotation_range [-2.5, 2.5] Rotation angle range in degrees
distortion_prob 0.2 Probability of applying distortion
distortion_level 0.03 Distortion intensity (e.g., 0.03 means 3% distortion)

generate

Controls output structure:

Parameter Default Description
output_height 48 Output image height (width auto-calculated)
retry_on_error true Whether to retry generation on error
out_dir ./generated Output image directory
out_jsonl ./generated.jsonl Annotation file path
batchsize 10000 JSONL write batch size
hierarchical_structure [100, 625] Directory nesting levels

Font Setup

By default, neots uses its built-in default font NotoSerifCJK-Regular.ttc in fonts/. Place diverse .ttf / .otf / .ttc font files in the fonts/ directory. The system will automatically index them and use them according to your chosen sample_strategy. More fonts = better model generalization. Aim for 50-200+ fonts covering your target scripts.

Background Images

For realistic training data, add images to backgrounds/ and set bg_image_prob > 0.

Supported formats: .jpg, .jpeg, .png, .bmp, .webp

Output Format

Generated images are saved as PNG files in a hierarchical directory structure:

generated/
├── 00000001/
│   ├── 00000001/
│   │   ├── 00000001.png
│   │   ├── 00000002.png
│   │   └── ...
│   └── ...
└── ...

Annotations are saved in JSONL format (generated.jsonl):

{"image":"00000001/00000001/00000001.png","text":"示例文本","length":248}
{"image":"00000001/00000001/00000002.png","text":"Sample text","length":315}

Each line contains:

  • image: Relative path to the image file
  • text: The rendered text content
  • length: Image width in pixels

Development

This project uses vcpkg to manage native C++ dependencies, and uses scikit-build-core + nanobind for the Python/C++ bridge. Development is now based on configuring the environment with vcpkg and building from source.

Supported Platforms

  • Linux x86_64
  • Linux AArch64
  • macOS ARM64
  • Windows x86_64

Build from Source with vcpkg

Windows

git clone https://github.com/microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
$env:CMAKE_TOOLCHAIN_FILE="$PWD\vcpkg\scripts\buildsystems\vcpkg.cmake"
pip install -e . --no-build-isolation

macOS

git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
export CMAKE_TOOLCHAIN_FILE="$PWD/vcpkg/scripts/buildsystems/vcpkg.cmake"
pip install -e . --no-build-isolation

Linux

git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
export CMAKE_TOOLCHAIN_FILE="$PWD/vcpkg/scripts/buildsystems/vcpkg.cmake"
pip install -e . --no-build-isolation

If you prefer to build the native extension directly with CMake, make sure CMAKE_TOOLCHAIN_FILE points to the vcpkg toolchain before configuring the project.

Donate

This project is maintained by a single person, so the documentation is not yet fully comprehensive and the feature set is still relatively limited.

If you would like to support the project, the most valuable help is:

  • submitting pull requests
  • actively opening issues when you encounter problems during usage

License

This project is licensed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neots-0.3.4.tar.gz (21.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

neots-0.3.4-cp314-cp314-win_arm64.whl (23.8 MB view details)

Uploaded CPython 3.14Windows ARM64

neots-0.3.4-cp314-cp314-win_amd64.whl (24.0 MB view details)

Uploaded CPython 3.14Windows x86-64

neots-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

neots-0.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

neots-0.3.4-cp314-cp314-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

neots-0.3.4-cp313-cp313-win_arm64.whl (23.6 MB view details)

Uploaded CPython 3.13Windows ARM64

neots-0.3.4-cp313-cp313-win_amd64.whl (23.8 MB view details)

Uploaded CPython 3.13Windows x86-64

neots-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

neots-0.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

neots-0.3.4-cp313-cp313-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

neots-0.3.4-cp312-cp312-win_arm64.whl (23.6 MB view details)

Uploaded CPython 3.12Windows ARM64

neots-0.3.4-cp312-cp312-win_amd64.whl (23.8 MB view details)

Uploaded CPython 3.12Windows x86-64

neots-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

neots-0.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

neots-0.3.4-cp312-cp312-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

neots-0.3.4-cp311-cp311-win_arm64.whl (23.6 MB view details)

Uploaded CPython 3.11Windows ARM64

neots-0.3.4-cp311-cp311-win_amd64.whl (23.8 MB view details)

Uploaded CPython 3.11Windows x86-64

neots-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

neots-0.3.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

neots-0.3.4-cp311-cp311-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

neots-0.3.4-cp310-cp310-win_arm64.whl (23.6 MB view details)

Uploaded CPython 3.10Windows ARM64

neots-0.3.4-cp310-cp310-win_amd64.whl (23.8 MB view details)

Uploaded CPython 3.10Windows x86-64

neots-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

neots-0.3.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

neots-0.3.4-cp310-cp310-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file neots-0.3.4.tar.gz.

File metadata

  • Download URL: neots-0.3.4.tar.gz
  • Upload date:
  • Size: 21.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4.tar.gz
Algorithm Hash digest
SHA256 ae091378255c690102a0777641ac19874ff817c6f3e73237e3ebcaf38246bdd9
MD5 6505d8f3bd0db532f7d1a1a50ea6b9e5
BLAKE2b-256 3649a13e2896d179a58bade1a9e4c008113ec06638399f51f64c50c0e90fb26c

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4.tar.gz:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.4-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 23.8 MB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 6ec164d0a44b1bbffe85bc7bbf725b01f4b6a35ade6ad5efb9c1ab8789ed2b6c
MD5 5cbee56e3c2099ca5ae8a12910f76253
BLAKE2b-256 a1a93a48fe536cddf44279f5dde924445fea8c0d96bab5f13ea949298ce256d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp314-cp314-win_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 24.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 395403477e7759cb46723af2ad689412b3c81a3ddc42e1ad012386003c4433c5
MD5 9d210a080cb3a9ceb236a4589ffd53eb
BLAKE2b-256 ddb7500fdd53cb041d8b561fefbc98d5d42bef8c96c947ce538bbfbd28e5b875

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp314-cp314-win_amd64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fac41136f4cf61583e5b06c94dcea1bbde1a438d5b9f15e32e0fb82f1ba8bc70
MD5 a7e374da1d8d2f6a52edf073eae01611
BLAKE2b-256 ea98684fd667eb48cf5e216d29aecb788b4fcf96f0a67ab3f816e11f5c3ac4b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8d3b3cd0569758383c768b34af0d98002a3ed4f2d853f53b92492db5a16c8468
MD5 dd68e0a149c24eff3992a1fa6060312a
BLAKE2b-256 58a26da1e2a94e9730053f4c8d39456b77df03cab898722d7e2480bbf076635d

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23b0117ffbfc1bfbce0a8489ccc5e555d901d09930df9b415b28735203d7a8bf
MD5 a9fecda1fcf21acc4f73375722c75a18
BLAKE2b-256 76b54893c8fcb8da4b92ab134a112f3238d894c6adb923bb53e1fadd7244bb52

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.4-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 598a2257630bf3426c97190cd19defbd3cdce0d2c010d4693433a2d0e3a42321
MD5 d94637dd065255c4bb3716ac03bb1d39
BLAKE2b-256 7e73e3f55d829f11ca714c324934b7049036e5bd9f21e472f75463a0cf611a31

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp313-cp313-win_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 23.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 abf818c8f9df86b24c5f58013df2a600913d504812418c940390be9a5af70369
MD5 d1be05d689afd39f81cb7820150738b3
BLAKE2b-256 32e06450ef75c2d05bd67a0417e525240cf433c6e4241a3b9101a8ad4d989571

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp313-cp313-win_amd64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4582c17e713044b40e06d8de8fe4f6eb6040e80e8676e550be1c00ab7546c5ee
MD5 98368e57b08043f05ffb54447c53627a
BLAKE2b-256 0e9b6cc3760172d3fa8a707d57ba9da8b29e0e9906551e3446d2ac431ae6c3fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42a091d226f1c03614d4861443b32a1efac199c89755083c22d64fe65e48e83b
MD5 bbb33a5157d62e5fb9130fa93a776253
BLAKE2b-256 274df409c52841e68b636259e118e187c024c19eeef172fdbf989acb61bd772d

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e7d86eabd1bdd0b4282ba62da6a29d9b8371f9a563133cabba8bcbdb275bee82
MD5 dc8d9e63610f2814c80cdaf9a1ead7fd
BLAKE2b-256 48ce2fd7c3738d06c3dc2b08c761f3ed43a1efb31edcb013eb4aedea1af77b8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.4-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 0cb50468a3f2e0974026ce783e867605dd9e929732a889639abaf013ab2a7ef5
MD5 fef2b63cf13c4cd151f4f3b2d949590a
BLAKE2b-256 4a7ae6edd9c9d28153c580752d43d60396a5d2b5e537d0c9c4a4d4f6bf87075e

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp312-cp312-win_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 23.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0d335478135010f857a252e3f5aa86e6ab27beb191b371613640011d4722a1d7
MD5 29be47a7766bdeb3d49ada5b2b02174f
BLAKE2b-256 32500bd76cbf51241db02a2d0a4a3cdfe90e792f249699264190ebc72f9c6d61

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp312-cp312-win_amd64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 89fab1b7974d1b0952fabed52266ea7ca7c6f426cd00903dd58a0841327a48b2
MD5 0dbb624d6a1f4f556334ee0967f1956b
BLAKE2b-256 5507c23a1ae4f2033040adc65876841b7b695b8a5c4e07ad633ca46f8729c611

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8f2c9f9fe8afd709c01540f9f6ae2f535c925e9782f06acb9f29e73078d410cc
MD5 9560705638ff1922515ddfb5d5f0c653
BLAKE2b-256 adb4abb4a4feaedcf6768883361491f9287ff86db2a8ca64b7893fe4f3677fec

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbb7c8e05b9e54bd8dfb1d1a675c364f677296ed4d7ab08d65c6c0171a38fcf6
MD5 bf2c86940766a19f3cfd51d7b23f5cb8
BLAKE2b-256 e9091e400944ad173678319c85e674dc9a69a4691e363edef9257c4b3c7486ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.4-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 bb206df7909f3b379d674d3e34b26cf7cda061492bdf2b3c2debf89c173f663f
MD5 b6a061a2a5f713a367e640d7d52d1d26
BLAKE2b-256 ca29fb4d90aa13a04d0571c155ba7cf6b0e2b4afd27f0c7a04a233346c50fabb

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp311-cp311-win_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 23.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 740da96298d6aebccb8ddd420b046b69fb295911fd42075a315245bd45e580cb
MD5 6f70ad9f512662908792a5854f67f4d7
BLAKE2b-256 a25055850bc9352ee9a6e50b8686801c6b976dd5416487dd46424332a25ab664

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp311-cp311-win_amd64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8d5958cae3ae226141f83f743763fb4e53e1b89c9a56cd561156bd08eda4dae
MD5 6473ceb2e119dc1188145c4b6c20520e
BLAKE2b-256 3736deef48baa29a0e05ed1f69a64e90daa72ad53d734a9f16b52c50c329dda4

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60eb3ef13c8dce77812ee5151f7f12d4ac3a8eea0ea160f307585c01f35dc7f7
MD5 c31382a01b1cbde5444af2d38e157536
BLAKE2b-256 2c95568f67b65c1a15d013e9ca18c82934b9e161c071fd59c94e00bd90fc153f

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb6a43a8b7dcaa9ce10cb45b58b24bcb7570bc2054ddff8d6bd79333c5d0a24b
MD5 1f0e9c41c56cb8bbfd111db7a582e3b9
BLAKE2b-256 6e583cb4bd222bf2b81b064e92de4c1f4635146b0fdc6dd839b2c6f259a6aa4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.4-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 42e9d6402ec983c24da5795d1c283a45c12c78d09ac60bef65602fd289bb6436
MD5 13e1bd9a4781a6c457a9c28d526c8b73
BLAKE2b-256 659a49c7b48525cafb7539894b7948da86aa9d8fd65b72ac7c82e667d590ee19

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp310-cp310-win_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 23.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for neots-0.3.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9d9b6b9a4f8c4939623235a60d2fcc5f4c3461c458d675dda8082c929aabab7f
MD5 4ce85e77050ab81cbaa6f33efcbf64c6
BLAKE2b-256 fd9a795b33d8ec0735d8a35477d6e543d8cc38708caf5091882bbcb763f860f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp310-cp310-win_amd64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d73e62071663abe876ff65d41a9b26c8df4023197ef9cb8f9e696140c6bad6d9
MD5 e86b9150fd31eed690fa727de8d00cf5
BLAKE2b-256 d3f73c5ab0b57a24d29229d9b46c07fb8b5cb5ea2425fe652458940795e0f1cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b3b46242cc50ceaffeeea1fa89ffd49674c8d6689237022372c94d584905cd6d
MD5 7aae81507f452982ee92bfc637ba252c
BLAKE2b-256 d86250e30724ee992daca9da13c749f3ebdeee71c14a304041e0449ead1a689e

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neots-0.3.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4ae665f8687a7b4ec04818661aa53b2d8e99ed66cd358c55e13ec9a6775ef63
MD5 60bc3eb04ee58ed7be3c2aceaa8705ee
BLAKE2b-256 040cc340774ad82558ea9c7c1006e3032e85e0da7dd3cca5d2e0d4d310044d8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: workflow.yml on reactor-no8/NeoTextSynthesizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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