Skip to main content

String gen

PyPI Downloads PyPI - Python Version PyPI - Implementation

Tests Ruff

Generate random strings from regular expression patterns.

string-gen takes a regex pattern and produces random strings that match it. Common use cases include:

  • Test data generation — create realistic inputs for unit and integration tests
  • Fixtures — produce parameterized test fixtures on the fly
  • Fuzzing — generate semi-structured random inputs for fuzz testing
  • Mock data — build placeholder data for prototyping and demos

Documentation | API Reference | Cookbook

Installation

pip install string-gen

Quick Start

from string_gen import StringGen

# Basic generation
gen = StringGen(r'(A|B)\d{4}(\.|-)\d{1}')
gen.render()  # e.g. 'B9954.4'

# List of strings
gen = StringGen(r'[A-Z]{3}-\d{3}')
gen.render_list(5)  # e.g. ['XKR-839', 'BNQ-271', 'JYL-054', 'WMT-692', 'AFZ-418']

# Built-in patterns
from string_gen.patterns import UUID4, IPV4
StringGen(UUID4).render()  # e.g. '52aabe4b-01fa-4b33-8976-b53b09f49e72'
StringGen(IPV4).render()   # e.g. '192.168.1.42'

# Custom alphabets
from string_gen.alphabets import CYRILLIC
StringGen(r'\w{10}', alphabet=CYRILLIC).render()  # e.g. 'ёЩкРблнЫйМ'

For full documentation visit tolstislon.github.io/string-gen.

Changelog

Contributing

Contributions are very welcome. You might want to:

  • Fix spelling errors
  • Improve documentation
  • Add tests for untested code
  • Add new features
  • Fix bugs

Getting started

  • Python 3.8+
  • uv
  1. Clone the repository
    git clone https://github.com/tolstislon/string-gen.git
    cd string-gen
    
  2. Install dev dependencies
    uv sync
    
  3. Run ruff format
    uv run ruff format
    
  4. Run ruff check
    uv run ruff check --fix
    
  5. Run tests
    uv run pytest tests/
    

Download files

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

Source Distribution

string_gen-1.0.0.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

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

string_gen-1.0.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file string_gen-1.0.0.tar.gz.

File metadata

  • Download URL: string_gen-1.0.0.tar.gz
  • Upload date:
  • Size: 39.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for string_gen-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b9e756760ca396888cf16afa4873a8a2242cfe89c869e1645538c45aa0f301bd
MD5 cc46dc2c6a9ff27f888cb577e6d56054
BLAKE2b-256 5ed46118e1331b44164fca7bb43ce540a7261f45731622571aa94c8050a2e704

See more details on using hashes here.

File details

Details for the file string_gen-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: string_gen-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for string_gen-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2510e5b5b857e499c5af9ee4f2c20e51b8b14e3a15e2c52fc8aa6a00ccf5bc44
MD5 c58651a0a984a000db91ed7d82e157b2
BLAKE2b-256 7bb144f7cb6c5c101d19bf203590a38a3eff3af233d746536cca5ac6695fd337

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page