Skip to main content

Random Data Generators. Allows you to generate random strings of a given length from letters, numbers and symbols, as well as randomize text. Helps generate passwords, service codes (for example, for sending via SMS), hashes and much more.

Project description

smartrandom v0.2.0


Random Data Generators:

Allows you to generate random strings of a given length from letters, numbers and symbols, as well as randomize text. Helps generate passwords, service codes (for example, for sending via SMS), hashes and much more.


GitHub release (latest by date) PyPI - Downloads GitHub top language PyPI GitHub PyPI - Format


Author and developer: A.A. Suvorov.


What is news:

smartrandom 0.2.0 - new improved version of the library.

WARNING! This version is not backward compatible with previous versions.

  • Completely rewritten and improved code.
  • Simplified import
  • Uses more secure and cryptographically strong secrets instead of random
  • Generated passwords must now contain at least one digit, one lowercase letter, one uppercase letter and one symbol. Length is at least 4.
  • Random letter generation is now at least 2. At least 1 lowercase letter and one uppercase letter are required.
  • Improved UrandomGenerator default size=128.
  • Added TextRandomizer.
  • Added tests.
  • Test coverage 100%.
  • Added documentation.

Help:

pip install smartrandom

from smartrandom import RandomDataGenerator


secret_code = RandomDataGenerator.generate_secret_code(6) # 'zREkjF'
number_secret_code = RandomDataGenerator.generate_random_numbers(6) # '986741'
symbols = RandomDataGenerator.generate_random_symbols(10) # '&&!@@&@!_!'
hash_ = RandomDataGenerator.generate_hash('text') # '1798b0ae66b1ca6f3b88e00f9d17ce1470549e97687a1c97e26110bb8853ad41797e83831efe7eedbd29042a9a8991fd1adb4f7680946d57eed99b8b6e5502c4'
urandom_string = RandomDataGenerator.generate_random_hex_string(32) # '7b1dd304b42e79d9e26bfb9f839abf8d001fed2039bcc3c5bfd14c0b05cfcab2'
urandom_bytes = RandomDataGenerator.generate_random_bytes(32) # b'f_@\x1bnP\xb4\xa8\xb7$a\xbf\x13\r#\x96\xe5\x07D\xa1N\xf5\xe9\x9a\x95\x91\xe4\xd0\x8fR"\''
randomized_text = RandomDataGenerator.randomize_text('{Salute|Hello|Good morning} {comrade|buddy|dear friend}!') # Good morning buddy!
password = RandomDataGenerator.generate_password(15) # 'b$L^#7rfIUzgY!2'

Text randomizer:

"Text randomization" or "variable text". It is used to create different variations of the same message.

You are using special syntax. Example: '{Salute|Hello|Good morning} {comrade|buddy|dear friend}!'

This syntax allows you to create variable messages by using curly braces and vertical bars to indicate alternatives.

Basic elements of syntax:

  1. Curly braces {}: Used to group text options. Anything inside the curly braces will be randomly selected when generating the text.
  2. Vertical bar |: Used to separate different text options within curly braces. Each option will be treated as a separate choice.

Example of use:

  • Syntax: '{Salute|Hello|Good morning} {comrade|buddy|dear friend}!'

  • Possible results:

    • Salute comrade!
    • Salute buddy!
    • Salute dear friend!
    • Hello comrade!
    • Hello buddy!
    • Hello dear friend!
    • Good morning comrade!
    • Good morning buddy!
    • Good morning dear friend!
  • How to use:

    1. Create your text: Identify which parts of your message can vary and place them in curly braces.
    2. Add options: Separate alternatives with a vertical bar.
    3. Text Generation: Use RandomStringMaster() to generate a random message.
  • Notes:

    • Make sure all options inside the curly braces make sense and fit the context.
    • You can use multiple randomization groups in a single message to create more complex variations.

Example of text randomization:

from smartrandom import TextRandomizer

text = '{Salute|Hello|Good morning} {comrade|buddy|dear friend}!'
randomized_text = TextRandomizer.randomize(text)
print(randomized_text)  # Good morning buddy!

Test coverage:

Run tests:

  • pip install pytest
  • pytest -v

Test coverage 100%

  • pip install pytest-coverage
  • pytest --cov

commandpack image

Report html:

  • pytest --cov --cov-report=html


Disclaimer of liability:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright:

--------------------------------------------------------
Licensed under the terms of the BSD 3-Clause License
(see LICENSE for details).
Copyright © 2018-2024, A.A. Suvorov
All rights reserved.
--------------------------------------------------------

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

smartrandom-0.2.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

smartrandom-0.2.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file smartrandom-0.2.0.tar.gz.

File metadata

  • Download URL: smartrandom-0.2.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for smartrandom-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a5f2a321f6176c10a02d2a332bb0eecfcb508fe2f1b6fd58f0a82d3773ead9eb
MD5 f3299ed981ed2dcf4d0b4d204e7c0777
BLAKE2b-256 872081990447261deff3d55b25dbe042e20d48f38ad020c638bc680b787702d4

See more details on using hashes here.

File details

Details for the file smartrandom-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: smartrandom-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for smartrandom-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6d5f1c78047d8d9b2fb660242289f3d49132943f18b9d4268b384e996155f02
MD5 d7f5d4f1c768553b532468e8c849c2d6
BLAKE2b-256 aaa6468e1a02a1d5b5030eb0b35216a3d169a297e0026a2830c9ed77e33670c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page