"""
Library functions for f0_make_randomvalues function block.
Provides random number generation, CSV I/O, and data display functionality.
"""
import random
import csv
from typing import List
from pathlib import Path
def generate_random_numbers(count: int) -> List[int]:
"""
Generate random integers in the range 0-999.
Args:
count: Number of random integers to generate
Returns:
List of random integers
"""
return [random.randint(0, 999) for _ in range(count)]
def save_data_to_csv(data: List[int], filepath: str) -> None:
"""
Save data to CSV file with header.
Args:
data: List of integers to save
filepath: Path to output CSV file
"""
path = Path(filepath)
path.parent.mkdir(parents=True, exist_ok=True)
with open(filepath, 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['data'])
for value in data:
writer.writerow([value])
def load_data_from_csv(filepath: str) -> List[int]:
"""
Load data from CSV file.
Args:
filepath: Path to input CSV file
Returns:
List of integers loaded from file
Raises:
FileNotFoundError: If the file does not exist
"""
data = []
with open(filepath, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
next(reader) # Skip header
for row in reader:
data.append(int(row[0]))
return data
def display_data(data: List[int]) -> None:
"""
Display data to stdout with header.
Args:
data: List of integers to display
"""
print("data")
for value in data:
print(value)
def write_function_notation(filepath: str) -> None:
"""
Write FGDB function notation to file.
Args:
filepath: Path to output function notation file
"""
path = Path(filepath)
path.parent.mkdir(parents=True, exist_ok=True)
with open(filepath, 'w', encoding='utf-8') as f:
f.write('y=f0()')