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/
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)
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
|