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
recompute_width true Recompute width after scaling
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

generate

Controls output structure:

Parameter Default Description
output_height 48 Output image height (width auto-calculated)
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.2.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.2-cp314-cp314-win_arm64.whl (23.7 MB view details)

Uploaded CPython 3.14Windows ARM64

neots-0.3.2-cp314-cp314-win_amd64.whl (23.9 MB view details)

Uploaded CPython 3.14Windows x86-64

neots-0.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.2 MB view details)

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

neots-0.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.0 MB view details)

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

neots-0.3.2-cp314-cp314-macosx_11_0_arm64.whl (24.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

neots-0.3.2-cp313-cp313-win_arm64.whl (23.5 MB view details)

Uploaded CPython 3.13Windows ARM64

neots-0.3.2-cp313-cp313-win_amd64.whl (23.7 MB view details)

Uploaded CPython 3.13Windows x86-64

neots-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.2 MB view details)

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

neots-0.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.0 MB view details)

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

neots-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (24.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

neots-0.3.2-cp312-cp312-win_arm64.whl (23.5 MB view details)

Uploaded CPython 3.12Windows ARM64

neots-0.3.2-cp312-cp312-win_amd64.whl (23.7 MB view details)

Uploaded CPython 3.12Windows x86-64

neots-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.2 MB view details)

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

neots-0.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.0 MB view details)

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

neots-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (24.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

neots-0.3.2-cp311-cp311-win_arm64.whl (23.5 MB view details)

Uploaded CPython 3.11Windows ARM64

neots-0.3.2-cp311-cp311-win_amd64.whl (23.7 MB view details)

Uploaded CPython 3.11Windows x86-64

neots-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.2 MB view details)

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

neots-0.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.0 MB view details)

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

neots-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (24.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

neots-0.3.2-cp310-cp310-win_arm64.whl (23.5 MB view details)

Uploaded CPython 3.10Windows ARM64

neots-0.3.2-cp310-cp310-win_amd64.whl (23.7 MB view details)

Uploaded CPython 3.10Windows x86-64

neots-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (25.2 MB view details)

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

neots-0.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (25.0 MB view details)

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

neots-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (24.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: neots-0.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 ebe139bb6a948ce56eee0a38513cf4bec4a4f6c232e06bd740d7771ffa311f0e
MD5 f129afc1057109545948507ff68ea2e2
BLAKE2b-256 831009a0db6384ea9f30c9f951636533e2cef6c86447a1eb1877c202a95fd309

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2.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.2-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.2-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 23.7 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.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 77183f5988c8e38936a395a40fe26383000fdf4f7f254bdd905da7b8ea7a34e0
MD5 cae033e8109e69f16abb7787534870fa
BLAKE2b-256 63ea9304e30acad618ef2a415de690f359b0cf6f07fb5057c3af79ac8a145f8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 23.9 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 165fde3889480b04e4c6edc8493353fed924018f4e8a989c4ce08f0521e6a5e7
MD5 ac548e139ee855e5ea81ecece637daba
BLAKE2b-256 5ce6fb9052b47445d92feaac974d9246df927709aca472c62353c15ad942362d

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 010a01049106bfc8ab0197b598a2ce3e06d1b2ed70aa7b75cabb3ef355f3166a
MD5 238cb13f5ad822199080471b204f9520
BLAKE2b-256 827d75678a1c3a8905163be3d99351e67e8bb4199d3df80221ae46ad40258abb

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de1427da88ee282468faee115ab526cfced106d05fa369d819f2a78a8e1f1de4
MD5 9a48545c5f92e8054866e8ffc4ac75e7
BLAKE2b-256 ddb26426c759faa9350e337c214071b10c4fc7aab9f66ff1fc348cf157768f55

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e6b66b0ecb229c917315f114269888b697c437073527a2fd64e5f054b7f0584
MD5 4900a7b62f5fa6ca4368c6dacfdf63ed
BLAKE2b-256 4507b2af710ee149d654a5d972fb5719334e9ef84218188a94b630d8daa35386

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.2-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 23.5 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.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 a93bcbd3fbdc90a1a65b4c6dbcac5d5040f1edee19ef087bd87411ddc5c483e0
MD5 668b74f99de468bb7a9a9cc5ffbe7dec
BLAKE2b-256 fa2a1eb511118c494b32bc980d205ba7faa6bf3bbe29642b56aeae7f3cba8b6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 23.7 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 66c5344abfde8322eb1392720ea6348ad9c2d462a0ee414a50d800a5a031b53f
MD5 b6291e73107cb4e229946022b34c8889
BLAKE2b-256 c6a6170bfd280c50d4b49aa44def2e2b38dfe088e01f383f71786a6c317e840c

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e0bb704430481ce3dc6757ea10265c06e56744ddb67d2759d82179226487b2e8
MD5 ca8c529e33b42aaac4513c8dc493707d
BLAKE2b-256 2ccae7e5d3ae5adb6e54e33ee6d17c0bed4d01614df89b5fbf5c3638692540cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dafd36f911ec0f99244d1f6aa433a43c4845c20eef7ab8db7a3b841a8e585107
MD5 549170e420f3017b7a3f139785b4aed2
BLAKE2b-256 55bf55f1928694e252ac7305aadd00fe4d7711d643e547b28e9e30533e20260f

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 406f64098ef11480ed296711c8657bb86421f54ac87158a31d2e5c14a4227b35
MD5 cce235bdec07cd7d448b15dde9e4984e
BLAKE2b-256 600330c4f0ad1d8607d5232c84e6683c220ae94aa56aa2442a77e1d538119bc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.2-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 23.5 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.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 2b2de687ef6ba4643455cd1ad1f1416494556b400b3f87daf253a6f5361934cc
MD5 91e188f16e0898edcee3578f6a676603
BLAKE2b-256 dbe0dc051bd395fdd64c283417624c2189ec0dc6a5ef697085b5435c9f99e523

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 23.7 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 72c7c3170f31797928e9652ff8672f358509c6031ff13046d9ce00fcb3484a5b
MD5 b6c74329be1f1362c296722d3c3b176e
BLAKE2b-256 6ec6f0925bfa1f0937b9cae5b6f86781974b2e4852f99c3cbd1d3c855f476a58

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36e2ba127fbffe2a23aa6e22f87a334b4a99ed52f46c7880350e97cec5ecc214
MD5 d36fc4d1b856b1887d8a6d51036a7927
BLAKE2b-256 ff3dc58c484a4ea4b16c1cd0c8910c0092aca18f1f5257c241870dd3ac1b96d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 be4ceee07cab3163e0491c171f53d3e458340267b9fdd3f2dec0d6c8e7ec19d7
MD5 5cfa94be8cacf26aa285de29c7e4b425
BLAKE2b-256 6071919c162dc1c131e421f2abcf473c5dcf9af42da07ae5d65a20857ea763e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b0b81f5fd9fb25e124a7527d0a972ed622a8f6ab565196643a1fdd82e57f970
MD5 5056824d2a850a5c6630f5ff4246a6a7
BLAKE2b-256 deb7ca36dfc41d3552a93160e0f66a447b801da3cd61c7dce2652fb26bdfc5d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.2-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 23.5 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.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 672be3884eccefdc1d63e1eff4b63d763870fed56aa608260c2603e8fbeb3e6c
MD5 c88cc61d7438fbc95e196de07af00933
BLAKE2b-256 c65559cc040127981b35a5b34953aa5b97829f789960be86491caa0fbb05bd64

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 23.7 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 670356d2014e87e19a26a25ac87640a24c985d0dc9248033d408f374585a3822
MD5 7642d99ce80e60e67d1dc17b34d75d5d
BLAKE2b-256 41345f6ae2e42064cb09ad8f98dc95cb78b018f4f6e7ef2e69978c8b81462e65

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f5c37de84261715e13a3b68ba9a6160ff4105b1c5a198f09325e59817910730
MD5 a44aea764a39604acb428282b7a330ef
BLAKE2b-256 a6cad116ee7afd2f2fd2b43453b1091692b9b18eed43105830dc80b6c18c7059

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0df0fadd833e19b9eb7d44bece42dd7b4b308712e60f4ad43d6fe5bd8a51e859
MD5 608aa2ea78ac260e6c73126c571be608
BLAKE2b-256 ff221526e7bcb31c4fa5943a1ded4cddda45f09752b5383502fa06fccf7a7ba9

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bde412ebccba725829af88fd7a9e2c6a14ec1cbb6d3854582cbbffe95ffe389
MD5 a609eccdfba52cfbfc98bb842b4e1faa
BLAKE2b-256 2597caa9e48cd1d5a55e502a686b0adebc784bb109b1f8637665eb30059650af

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: neots-0.3.2-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 23.5 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.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 7fe4f8a63b5bea99ec11a2739a18c076a2ee525ad6e407be67172aa1101808c9
MD5 53d1aadff7350d617f35237ba4b1fc31
BLAKE2b-256 a0170a6284f4fda2f58ade67738203916ddd4feeccb31a6743b0753aafee5141

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: neots-0.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 23.7 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 19897f9960369236fe501bc75d269305a587de03b1145ece2e0b1957c9076a00
MD5 2aa54631c420d592f6ff5b6e9962e289
BLAKE2b-256 c192dab063207d672eb68561475968edef574de2a735cd976871ec8df6a270d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3798f83130f8566c13fc95584269cc8f095278ae1e934f245d36a773799a441f
MD5 43347cb83c027f49f69c9c5a12de2502
BLAKE2b-256 962db7054f59c21cb267a860ca80dccedf968f225776a320e05c28b1f8ead15f

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bf564cbd1a8b6feb51fe825b9c9f1241afad2291bfe162580f07ba2fa6bb368d
MD5 1deb5e92446bd27212e9eef52ed28394
BLAKE2b-256 a56ae4004ceb4bc1b091370f6c7e78fe13565dd2ccdaf1e644ad70cc61f6a985

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for neots-0.3.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a899c9a4650e9e4301806fa37d931b1d3fc88b8c131e5760d1b20cd24688df9
MD5 f5c2437e5076f4b8f0d3e5eed494b6d8
BLAKE2b-256 aced3a07b529af5dd500456d236c085a8f7a645df850e81cdb7ad10f14673e28

See more details on using hashes here.

Provenance

The following attestation bundles were made for neots-0.3.2-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