Module jumpscale.data.idgenerator.idgenerator
idgenerator module helps with generating ids, guids, integers, chars, passwords, capnp id, a choice of a sequence
JS-NG> j.data.idgenerator.guid()                                                                    
'c1d14970-f17f-49a3-aa85-f722013ee448'
JS-NG> j.data.idgenerator.password(5)                                                               
'b6~Sl'
JS-NG> j.data.idgenerator.capnp_id()                                                                
'0xa414b890b73d0940'
JS-NG> j.data.idgenerator.random_int()                                                              
7
JS-NG> j.data.idgenerator.random_int(0, 5)                                                          
2
Expand source code
"""idgenerator module helps with generating ids, guids, integers, chars, passwords, capnp id, a choice of a sequence
```
JS-NG> j.data.idgenerator.guid()                                                                    
'c1d14970-f17f-49a3-aa85-f722013ee448'
JS-NG> j.data.idgenerator.password(5)                                                               
'b6~Sl'
JS-NG> j.data.idgenerator.capnp_id()                                                                
'0xa414b890b73d0940'
JS-NG> j.data.idgenerator.random_int()                                                              
7
JS-NG> j.data.idgenerator.random_int(0, 5)                                                          
2
```
"""
import random
import string
import uuid
from typing import List
def random_int(from_: int = 0, to: int = 10) -> int:
    """Generate random int within range from_, to
    Arguments:
        from_ {int} -- lower limit, default 0
        to {int} -- upper limit
    Returns:
        int -- random number
    """
    return random.randint(from_, to)
def incrementor_id():
    # user redis.incr.
    raise NotImplementedError()
def guid() -> str:
    """Gets a uuid4
    Returns:
        str -- uuid4
    """
    return str(uuid.uuid4())
def nfromchoices(n: int, choices: List[str]) -> str:
    """Gets string from choices list
    Arguments:
        n {int} -- how many
        choices {List[str]} -- choices to pick from
    Returns:
        str -- joined result of n choices.
    """
    return "".join([random.choice(choices) for _ in range(n)])
def chars(nchars: int) -> str:
    """Gets a random string with length of n
    Arguments:
        nchars {int} -- [description]
    Returns:
        str -- [description]
    """
    choices = string.ascii_letters + string.digits
    return nfromchoices(nchars, choices)
def nbytes(nbytes: int) -> bytearray:
    """return bytearray of length n
    Arguments:
        nbytes {int} -- number of bytes to generate
    Returns:
        bytearray -- result
    """
    out = bytearray()
    for n in range(nbytes):
        out.append(random_int(0, 255))
    return out
def password(nchars: int) -> str:
    """Return a password of length nchars
    Arguments:
        nchars {int} -- [description]
    Returns:
        str -- password
    """
    choices = string.printable
    return nfromchoices(nchars, choices)
def capnp_id() -> str:
    """
    Generates a valid id for a capnp schema.
    Returns:
        str -- capnp id
    """
    # the bitwise is for validating the id check capnp/parser.c++
    return hex(random.randint(0, 2**64) | 1 << 63)
Functions
def capnp_id() ‑> str- 
Generates a valid id for a capnp schema.
Returns
str – capnp id
Expand source code
def capnp_id() -> str: """ Generates a valid id for a capnp schema. Returns: str -- capnp id """ # the bitwise is for validating the id check capnp/parser.c++ return hex(random.randint(0, 2**64) | 1 << 63) def chars(nchars: int) ‑> str- 
Gets a random string with length of n
Arguments
nchars {int} – [description]
Returns
str – [description]
Expand source code
def chars(nchars: int) -> str: """Gets a random string with length of n Arguments: nchars {int} -- [description] Returns: str -- [description] """ choices = string.ascii_letters + string.digits return nfromchoices(nchars, choices) def guid() ‑> str- 
Gets a uuid4
Returns
str – uuid4
Expand source code
def guid() -> str: """Gets a uuid4 Returns: str -- uuid4 """ return str(uuid.uuid4()) def incrementor_id()- 
Expand source code
def incrementor_id(): # user redis.incr. raise NotImplementedError() def nbytes(nbytes: int) ‑> bytearray- 
return bytearray of length n
Arguments
nbytes {int} – number of bytes to generate
Returns
bytearray – result
Expand source code
def nbytes(nbytes: int) -> bytearray: """return bytearray of length n Arguments: nbytes {int} -- number of bytes to generate Returns: bytearray -- result """ out = bytearray() for n in range(nbytes): out.append(random_int(0, 255)) return out def nfromchoices(n: int, choices: List[str]) ‑> str- 
Gets string from choices list
Arguments
n {int} – how many choices {List[str]} – choices to pick from
Returns
str – joined result of n choices.
Expand source code
def nfromchoices(n: int, choices: List[str]) -> str: """Gets string from choices list Arguments: n {int} -- how many choices {List[str]} -- choices to pick from Returns: str -- joined result of n choices. """ return "".join([random.choice(choices) for _ in range(n)]) def password(nchars: int) ‑> str- 
Return a password of length nchars
Arguments
nchars {int} – [description]
Returns
str – password
Expand source code
def password(nchars: int) -> str: """Return a password of length nchars Arguments: nchars {int} -- [description] Returns: str -- password """ choices = string.printable return nfromchoices(nchars, choices) def random_int(from_: int = 0, to: int = 10) ‑> int- 
Generate random int within range from_, to
Arguments
from_ {int} – lower limit, default 0 to {int} – upper limit
Returns
int – random number
Expand source code
def random_int(from_: int = 0, to: int = 10) -> int: """Generate random int within range from_, to Arguments: from_ {int} -- lower limit, default 0 to {int} -- upper limit Returns: int -- random number """ return random.randint(from_, to)