Generate random strings from regex patterns
Project description
String gen
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
- Clone the repository
git clone https://github.com/tolstislon/string-gen.git cd string-gen
- Install dev dependencies
uv sync - Run ruff format
uv run ruff format
- Run ruff check
uv run ruff check --fix
- Run tests
uv run pytest tests/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9e756760ca396888cf16afa4873a8a2242cfe89c869e1645538c45aa0f301bd
|
|
| MD5 |
cc46dc2c6a9ff27f888cb577e6d56054
|
|
| BLAKE2b-256 |
5ed46118e1331b44164fca7bb43ce540a7261f45731622571aa94c8050a2e704
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2510e5b5b857e499c5af9ee4f2c20e51b8b14e3a15e2c52fc8aa6a00ccf5bc44
|
|
| MD5 |
c58651a0a984a000db91ed7d82e157b2
|
|
| BLAKE2b-256 |
7bb144f7cb6c5c101d19bf203590a38a3eff3af233d746536cca5ac6695fd337
|