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.3.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.3-cp314-cp314-win_arm64.whl (23.8 MB view details)

Uploaded CPython 3.14Windows ARM64

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

Uploaded CPython 3.14Windows x86-64

neots-0.3.3-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.3-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.3-cp314-cp314-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

neots-0.3.3-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.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

neots-0.3.3-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.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

neots-0.3.3-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.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (24.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows ARM64

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

Uploaded CPython 3.10Windows x86-64

neots-0.3.3-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.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: neots-0.3.3.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.3.tar.gz
Algorithm Hash digest
SHA256 8f304a18d5784285fa82390b610a15128e2a08fef354e7f5f58a2e0de9c0ff2d
MD5 99fb97eefab12b7b25f02342f28c50e1
BLAKE2b-256 d7c08e0703ff4af74fa88adae03d8b462aed2b58917a1617af551aff02af3751

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 3e60cb80839a6fd6bfa2be88b1d989b63b5b55bdc7788f2c2ad60522fb445d49
MD5 b84f00fba90eef2f35972e0268cc8bc4
BLAKE2b-256 3bde159fae0742252841b79df52f74c3cfbe301bb528dd1b3a1cb577604adcd3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 87ce916faa057e842bae95cca5f8bf9701de139258ce28a97a1cc9bcb3b072a1
MD5 59b5951ccf7a5b98450a3765ca267187
BLAKE2b-256 6fc7bc21ab93c0eb70940bf11cac6ac058ce2c2ff5046127c7cc082fad0975ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2855d65bdf498969b10f37c8ad5205297b9c22992129dad40050679137003e6
MD5 5e2f4928819bf41a7f7d01b3033afbac
BLAKE2b-256 5c46a74241fca12d61d1c69d676978a39677ad89536d042406c7e73ffaadfbf4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af742c8cc53a97e95d0f775475f1f1ba82c4c104f5889610a0fce9ee1bbfd4d2
MD5 2bb2612f04baf80dbd1d3cc3732b12fd
BLAKE2b-256 9685f286ffe26eeaf069c000831f6e9668ab80fc8a335c5b49da4d3547fb471e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4438696d8e6af2392e5b6b8ffddbc33a4a6bf1151ad7d22ce13ac2f1ca3a37c1
MD5 3b31b91def3c6e039bcbc00584b718a4
BLAKE2b-256 dbd9382c2a10a9d65c64ad098b57a741dd8012a598fb7e5a91e27a26cb06d87e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 ae9338f259d942ec98d3adbb41bcda17273ee0db7c24992ce2afac868faf2a57
MD5 ec0279b77ccfc9ef48dea0f5e752016c
BLAKE2b-256 8f0059633386c8729f2a960e15f11fd679da367338db77a0ec3e3e65f82f92a3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a2ac7f0e6fca6cd997dc2f2a94746a6012fea3bc55469ab5c93a8d131dfcae00
MD5 e78dd896defd4dd892809cdfbd7622d6
BLAKE2b-256 4e36230b84f209b7a6f97897645e0d90f946f966be5404f7b7a7adc3ef843d2a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c0862d33aa66c21c53b0c66d172aceecebe4fad46018851b4ce41dbeb2c7d88
MD5 d1696161fa3a06df31625ac76e54ef3f
BLAKE2b-256 e9d445947eee7e9586c0dfca4fdd6e946a2b44656dfede909b8bfc50a5de3cd9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3a86d7e537f82e70d81d269d9c9bbfecce6bc1247330ad41d5d8233b8f6db0d1
MD5 6d9dc00f75fbef7eff6021d01f3510a1
BLAKE2b-256 4ff3be2af48841e707f5c8a4d6f827586ca1b0f75ec97c9f7cb92a0b9914dcfb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 249cb2bd52d4f033e52690d4483d9b1790b9060b6edf1a5354f73f5e67fc81b7
MD5 0e9fe3642282e90a0a6462750b45142e
BLAKE2b-256 e85cd4932021db12c42de491e7e069a128a6263d96cabf1cadab5b554829ac90

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 71c1fd2809c79ff1094cddb00524d8c333265b2474304d6e5e4b4bf182a87025
MD5 99af913cc42541b56026a9c487be9eb4
BLAKE2b-256 6dc8ca53da38cf4881c13ad1828ee2ae6f1e384647b8f0a2e3b92386a326df46

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 260905dfb026ae283cc160ec2ea5600260f957235b8df724a2c5945a8849d7db
MD5 734eff9dad7874e5c568f622625d68ba
BLAKE2b-256 583b0ef2f4172a5450e0e4e679101a7d83e384f7e3d049d2593fe3cdf10f4a1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1faf2144bc09b55f75f7ce10c4eba6b56a8658ca29dc7366a4e7154131166d57
MD5 5c243261284845ca3f599337b12ee444
BLAKE2b-256 48fb321344251668976552e3d67d66a87daddeda7f19e7f28de80ad7e498fd5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4740480ba96f13ace951e254fcb66a5c682293a0e53c9e4a760a5ef824e31a84
MD5 9ef2b1a681b16d0bdc1bc2067812d97c
BLAKE2b-256 214b4ae7977c6c87d7776a41de68e8add9f1963b7e58b906a6862917d9248e56

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a25a8af17a30d938567c4dce297c770bb9ffea8f57739ede07036221890c2842
MD5 26b719df0e91ea73d2140809b319cd13
BLAKE2b-256 3709caf8afeed2b93fa8b9ae3137f93ff04fd3a07bfaa48dbe3d8d36fa28b80b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 f992e9716db590e80fc660377b4462929abb256517d874592acf56f6725df177
MD5 8f45ae17bff8cf6587a7166ba7d769a4
BLAKE2b-256 4c83b98a7ed56e0b9798235d95438b600e3934b581f331a0d02ff5389eb07e13

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b484b7be0ecc8f5f1d961d49ed5ba735e70150e6fa897c54937ee118c28b2a55
MD5 97caab46476420fe7f21e7143154edc3
BLAKE2b-256 f4dacee56412e0d32816e5b1f98b5145443cd3837b62dbcdb62408757a4b9e72

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b217950f57586fec147cb32da8c02321f1fbabec333495dc74648715583f921
MD5 b9f54029620315a438f2ead29d45a8f6
BLAKE2b-256 0ccccc07c369e96fb9830709b279567734429c16a397be6d1247f39a2bedad4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d017a9794ca68c7b515365aea6fcb684979e246dd0706cc179bba5d444256bac
MD5 696c9f9cd106c6017edf7fa90266037b
BLAKE2b-256 911ca79ea1a7b5a78600cab9aea9b7be32c534f96317dda58e343bb9645a90b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1723e01785d7cd168bad52e22932eaea2d128243f8f95ce608794e6da148756b
MD5 9b0fd527c9f8f0f89af9212c26a25d96
BLAKE2b-256 5cd9ac8c7dac76748941fe3af94ed0a3973443197c497aa58af626e5197ada4e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 c5d1bbb188d370c9a94647d153348a73bfa731f215470a7f1ec6d79a90d7eeed
MD5 c70adf188019722aeb21ffc2ad5a556d
BLAKE2b-256 bfccec70c7f897c2c59ad4254d0d802b42a8b44f6cb150957c71e78c87bb4ac3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: neots-0.3.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 be7f650771fc921fd2295d38fcef3f541709b052dce05e4feba6104c5d0eefba
MD5 422a64e58a0e105f4350f5e1e31f43cc
BLAKE2b-256 ccda2f3e62249204c137cdc60612bd2cefeb806232d969818b28e22053c3bbe9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 460a22a60264bd58980ed03619d7772868820cd14a03fcb16871d4d7761bb373
MD5 5b0994fef81030dc39bd1c20d9c4c2f1
BLAKE2b-256 baefe2d08c443b80b6639c59677877baf211faa17704358feef98e82d6d136be

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b1081d64151ac672600a5411f8bdfd28bc9b5b368d7a8d179f77271ce1646da2
MD5 ced41dc63cdd3d1816da137ed38c2d67
BLAKE2b-256 1f121df0753a936e98f4c0c6fe46a38e043d1b80b419931a744584c81c1a8eb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for neots-0.3.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8a344d3101a1a4eaf9827abf1f65bf2ec6a8cafa76292eade6251ea190b9d80
MD5 89b7cff56da4e86cf81856140366b2bb
BLAKE2b-256 6e91c43b1694db42b2a1798cd2545b18c1ce275b188264716673d9f9c892c978

See more details on using hashes here.

Provenance

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