re-generate

Package for random data generation via ReGex


Keywords
QA, random, string, reverse, regular, expression, regex, generator, testing, autotesting
License
MIT
Install
pip install re-generate==0.1.4

Documentation

PyPi Package Version Supported Python versions PyPi status

Re-Generate

A simple and light package for QA development which can generate random strings via RegExr.

Not all RegExr mechanics are available now. But you can use all base methods and generate any string.

New features

1.0.8:

  1. Finally, added () groups syntax support
  2. Global changes in generation start function (sorry, it's alpha)

Getting started

This package is tested with Python 3.9-3.11 and Pypy 3. There are two ways to install the library:

  • Installation using pip (a Python package manager):
pip install re_generate
  • Installation from source (requires git):
git clone https://github.com/Warrfie/re-generate
cd re-generate
python setup.py install

or:

pip install git+https://github.com/Warrfie/re-generate

It is generally recommended to use the first option.

Package is still under development, and it has regular updates, do not forget to update it regularly by calling

pip install re_generate --upgrade

Summary

What RegExr syntax supported

type is supported
[] square brackets
[^] ! square brackets
{} braces quantifiers
{i,j} range braces quantifiers
| or
() groups
\n,\s,\d...etc reserved samples
*?,+?,?? greedy quantifiers
*,+,? lazy quantifiers

Main functionality

How generate

from re_generate import re_generate
print(re_generate(r"69[0-9]abc[a-zA-Z]228"))
'693abcb228'

How generate several strings ot once

from re_generate import re_generate_list
print(re_generate_list(r"69[0-9]abc[a-zA-Z]228"), 10)
['694abcO228', '693abcG228', '692abcV228', '696abcy228', '693abca228', '690abcb228', '694abcD228', '696abck228', '696abcJ228', '692abca228']

What you can configue

If you want to use your own library

from re_generate import re_generator
re_generator.char_lib = "你f好п我Э的$中(国*朋Ъ友1234+=\/,."

Sometimes you need generate string without spaces at begin and end, like after .strip() function.

from re_generate import re_generator
re_generator.will_be_stripped = True

Tips and tricks

In large project you can link that lib throw cfg py file like that

cfg.py
from re_generate import re_generator
re_generator.char_lib = "你f好п我Э的$中(国*朋Ъ友1234+=\/,."
re_generator.will_be_stripped = True
your_func = re_generator.re_generator

and use it in your project

your_code.py
from cfg import your_func
print(your_func(r"69[^0-9]abc[a-zA-Z]22[ 8]"))
'69我abcb228'