diff --git a/PostgreSQL/generate_data.py b/PostgreSQL/generate_data.py new file mode 100644 index 0000000..7e29090 --- /dev/null +++ b/PostgreSQL/generate_data.py @@ -0,0 +1,93 @@ +import random +import csv + +pathIntegers : str = "data/row_numbers.csv" +pathSentences : str = "data/sentences.csv" +pathUrls : str = "data/urls.csv" +pathWords : str = "data/words.csv" +pathNames : str = "data/names.csv" +pathNameModels : str = "data/name_models.csv" +pathDates : str = "data/dates.csv" +pathColors : str = "data/colors.csv" +pathBrands : str = "data/brands.csv" + +def random_element(pathFile : str) -> str: + """ + :param pathFile: the relative path of the csv file to read. + :return: a random element from this file. + """ + with open(pathFile) as file: + csvList : list = list(csv.reader(file)) + random_index_line : int = random.randint(0, len(csvList)) + return "" if ( csvList[random_index_line] == [] ) \ + else csvList[random_index_line][0] + +def construct_line(*args : tuple) -> str: + """ + :param *args: a tuple of elements. + example : [ "1", "'toto'", "'Lorem PIPsum'", "42" ]. + :return: a line to give to the sql. + example : "(1, 'toto', 'Lorem PIPsum', 42)". + """ + return "(" + ', '.join(list(args)) + ")" + +def generate_line_acheter() -> str: + idMembre : str = random_element(pathIntegers) + idPiece : str = random_element(pathIntegers) + quantite : str = random_element(pathIntegers) + + return construct_line(idMembre, idPiece, quantite) + +def generate_line_avoir_motif() -> str: + idPiece : str = random_element(pathIntegers) + idMotif : str = random_element(pathIntegers) + + return construct_line(idPiece, idMotif) + +def generate_line_avoir_tag() -> str: + idTag : str = random_element(pathIntegers) + idBoite : str = random_element(pathIntegers) + + return construct_line(idTag, idBoite) + +def generate_line_boites() -> str: + idBoite : str = random_element(pathIntegers) + titre : str = "\'" + random_element(pathWords) + "\'" + dateBoite : str = random_element(pathDates) + idMarque : str = random_element(pathIntegers) + + return construct_line(idBoite, titre, dateBoite, idMarque) + +def generate_line_colorer() -> str: + idPiece : str = random_element(pathIntegers) + idCouleur : str = random_element(pathIntegers) + + return construct_line(idPiece, idCouleur) + +def generate_line_construire() -> str: + idBoite : str = random_element(pathIntegers) + idModele : str = random_element(pathIntegers) + + return construct_line(idBoite, idModele) + +def generate_line_contenir() -> str: + idBoite : str = random_element(pathIntegers) + idPiece : str = random_element(pathIntegers) + quantite : str = random_element(pathIntegers) + + return construct_line(idBoite, idPiece, quantite) + + + + + + + + + + + +if __name__ == '__main__': + print(generate_line_acheter()) + print(generate_line_boites()) +