Loading src/common/cli/__init__.py +3 −3 Original line number Diff line number Diff line Loading @@ -25,9 +25,9 @@ from common.cli.docker_cli import docker from common.cli.python_cli import python_cli from common.cli.gen_cli import gen_cli of_cli.add_command(docker) of_cli.add_command(python_cli) of_cli.add_command(gen_cli) of_cli.add_command(docker, name="docker") of_cli.add_command(python_cli, name="py") of_cli.add_command(gen_cli, name="gen") if __name__ == "__main__": of_cli() src/common/cli/gen_cli.py +18 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import click from common.gen import generate_csv, convert_size_to_bytes from common.gen import generate_csv, convert_size_to_bytes, generate_json @click.group() Loading @@ -15,7 +15,7 @@ def gen_cli(): @click.option('--col', '-c', type=int, required=True, help="Number of columns in the CSV.") @click.option('--row', '-r', type=int, help="Number of rows in the CSV.") @click.option('--size', '-s', type=str, help="Target file size (e.g., 512MB or 1GB).") def generate(col, row, size): def csv(col, row, size): """Generate a CSV file with the specified number of columns and rows or file size.""" target_file_size = None if size: Loading @@ -34,5 +34,21 @@ def generate(col, row, size): ) @gen_cli.command() @click.option('--size', '-s', type=str, required=True, help="Target file size (e.g., 512MB or 1GB).") def json(size): """Create a JSON file with the specified target size.""" try: target_file_size = convert_size_to_bytes(size) except ValueError as e: click.echo(f"Error: {e}") return generate_json( file_path='output.json', target_file_size=target_file_size ) if __name__ == '__main__': gen_cli() src/common/gen.py +19 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ import csv import random import string import os import json import argparse Loading Loading @@ -71,6 +72,24 @@ def generate_csv(file_path, n_columns=5, target_file_size=None, target_row_count print(f"CSV file generated at {file_path} with {row_count} rows.") def generate_json(file_path, target_file_size): """Generates a JSON file with a target size.""" data = {"data": []} current_file_size = 0 with open(file_path, 'w') as file: while current_file_size < target_file_size: row = {} for _ in range(5): row[generate_gibberish()] = generate_gibberish() data["data"].append(row) json.dump(data, file) current_file_size = os.path.getsize(file_path) print(f"JSON file generated at {file_path}.") def main(): parser = argparse.ArgumentParser(description="Generate a large CSV file with random data.") Loading Loading
src/common/cli/__init__.py +3 −3 Original line number Diff line number Diff line Loading @@ -25,9 +25,9 @@ from common.cli.docker_cli import docker from common.cli.python_cli import python_cli from common.cli.gen_cli import gen_cli of_cli.add_command(docker) of_cli.add_command(python_cli) of_cli.add_command(gen_cli) of_cli.add_command(docker, name="docker") of_cli.add_command(python_cli, name="py") of_cli.add_command(gen_cli, name="gen") if __name__ == "__main__": of_cli()
src/common/cli/gen_cli.py +18 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import click from common.gen import generate_csv, convert_size_to_bytes from common.gen import generate_csv, convert_size_to_bytes, generate_json @click.group() Loading @@ -15,7 +15,7 @@ def gen_cli(): @click.option('--col', '-c', type=int, required=True, help="Number of columns in the CSV.") @click.option('--row', '-r', type=int, help="Number of rows in the CSV.") @click.option('--size', '-s', type=str, help="Target file size (e.g., 512MB or 1GB).") def generate(col, row, size): def csv(col, row, size): """Generate a CSV file with the specified number of columns and rows or file size.""" target_file_size = None if size: Loading @@ -34,5 +34,21 @@ def generate(col, row, size): ) @gen_cli.command() @click.option('--size', '-s', type=str, required=True, help="Target file size (e.g., 512MB or 1GB).") def json(size): """Create a JSON file with the specified target size.""" try: target_file_size = convert_size_to_bytes(size) except ValueError as e: click.echo(f"Error: {e}") return generate_json( file_path='output.json', target_file_size=target_file_size ) if __name__ == '__main__': gen_cli()
src/common/gen.py +19 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ import csv import random import string import os import json import argparse Loading Loading @@ -71,6 +72,24 @@ def generate_csv(file_path, n_columns=5, target_file_size=None, target_row_count print(f"CSV file generated at {file_path} with {row_count} rows.") def generate_json(file_path, target_file_size): """Generates a JSON file with a target size.""" data = {"data": []} current_file_size = 0 with open(file_path, 'w') as file: while current_file_size < target_file_size: row = {} for _ in range(5): row[generate_gibberish()] = generate_gibberish() data["data"].append(row) json.dump(data, file) current_file_size = os.path.getsize(file_path) print(f"JSON file generated at {file_path}.") def main(): parser = argparse.ArgumentParser(description="Generate a large CSV file with random data.") Loading