Skip to main content

Generate random strings from regex patterns

Project description

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/
    

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

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.

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