Team Ai
Apppublic

Agents-MCP-Hackathon/Python-Code-to-Diagram-Generator-MCP

sourceHugging Facemitupdated 1y agoView on Hugging Face
6likes
sample_functions.py139 linesDownload Raw Back to examples
1import math2import random3from typing import List, Tuple4 5def calculate_factorial(n: int) -> int:6    """Calculate factorial of a number recursively."""7    if n <= 1:8        return 19    return n * calculate_factorial(n - 1)10 11def fibonacci_sequence(n: int) -> List[int]:12    """Generate fibonacci sequence up to n terms."""13    if n <= 0:14        return []15    elif n == 1:16        return [0]17    elif n == 2:18        return [0, 1]19    20    sequence = [0, 1]21    for i in range(2, n):22        sequence.append(sequence[i-1] + sequence[i-2])23    return sequence24 25def is_prime(num: int) -> bool:26    """Check if a number is prime."""27    if num < 2:28        return False29    if num == 2:30        return True31    if num % 2 == 0:32        return False33    34    for i in range(3, int(math.sqrt(num)) + 1, 2):35        if num % i == 0:36            return False37    return True38 39def find_primes_in_range(start: int, end: int) -> List[int]:40    """Find all prime numbers in a given range."""41    primes = []42    for num in range(start, end + 1):43        if is_prime(num):44            primes.append(num)45    return primes46 47def calculate_statistics(numbers: List[float]) -> dict:48    """Calculate basic statistics for a list of numbers."""49    if not numbers:50        return {"error": "Empty list provided"}51    52    n = len(numbers)53    mean = sum(numbers) / n54    sorted_nums = sorted(numbers)55    56    # Calculate median57    if n % 2 == 0:58        median = (sorted_nums[n//2 - 1] + sorted_nums[n//2]) / 259    else:60        median = sorted_nums[n//2]61    62    # Calculate variance and standard deviation63    variance = sum((x - mean) ** 2 for x in numbers) / n64    std_dev = math.sqrt(variance)65    66    return {67        "count": n,68        "mean": mean,69        "median": median,70        "min": min(numbers),71        "max": max(numbers),72        "variance": variance,73        "std_deviation": std_dev74    }75 76def monte_carlo_pi(iterations: int) -> float:77    """Estimate Pi using Monte Carlo method."""78    inside_circle = 079    80    for _ in range(iterations):81        x, y = random.random(), random.random()82        if x*x + y*y <= 1:83            inside_circle += 184    85    return 4 * inside_circle / iterations86 87def process_data_pipeline(data: List[int]) -> dict:88    """Complex data processing pipeline demonstrating function calls."""89    # Step 1: Filter for positive numbers90    positive_data = []91    for x in data:92        if x > 0:93            positive_data.append(x)94    95    # Step 2: Find primes in the data96    primes_in_data = []97    for x in positive_data:98        if is_prime(x):99            primes_in_data.append(x)100    101    # Step 3: Calculate statistics102    positive_data_floats = []103    for x in positive_data:104        positive_data_floats.append(float(x))105    stats = calculate_statistics(positive_data_floats)106    107    # Step 4: Generate fibonacci sequence up to max value108    max_val = max(positive_data) if positive_data else 0109    fib_count = min(max_val, 20)  # Limit to reasonable size110    fib_sequence = fibonacci_sequence(fib_count)111    112    # Step 5: Calculate factorials for small numbers113    small_numbers = []114    for x in positive_data:115        if x <= 10:116            small_numbers.append(x)117    factorials = {}118    for x in small_numbers:119        factorials[x] = calculate_factorial(x)120    121    return {122        "original_count": len(data),123        "positive_count": len(positive_data),124        "primes_found": primes_in_data,125        "statistics": stats,126        "fibonacci_sequence": fib_sequence,127        "factorials": factorials,128        "pi_estimate": monte_carlo_pi(1000)129    }130 131def main():132    """Main function demonstrating the pipeline."""133    sample_data = [1, 2, 3, 5, 8, 13, 21, -1, 0, 17, 19, 23]134    result = process_data_pipeline(sample_data)135    print(f"Processing complete: {len(result)} metrics calculated")136    return result137 138if __name__ == "__main__":139    main()