41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
from rich.console import Console
|
|
|
|
from falyx import Falyx
|
|
from falyx.action import ProcessPoolAction
|
|
from falyx.action.process_pool_action import ProcessTask
|
|
from falyx.execution_registry import ExecutionRegistry as er
|
|
from falyx.themes import NordColors as nc
|
|
|
|
console = Console()
|
|
falyx = Falyx(title="🚀 Process Pool Demo")
|
|
|
|
|
|
def generate_primes(start: int = 2, end: int = 100_000) -> list[int]:
|
|
primes: list[int] = []
|
|
console.print(f"Generating primes from {start} to {end}...", style=nc.YELLOW)
|
|
for num in range(start, end):
|
|
if all(num % p != 0 for p in primes):
|
|
primes.append(num)
|
|
console.print(
|
|
f"Generated {len(primes)} primes from {start} to {end}.", style=nc.GREEN
|
|
)
|
|
return primes
|
|
|
|
|
|
actions = [ProcessTask(task=generate_primes)]
|
|
|
|
# Will not block the event loop
|
|
heavy_action = ProcessPoolAction(
|
|
name="Prime Generator",
|
|
actions=actions,
|
|
)
|
|
|
|
falyx.add_command("R", "Generate Primes", heavy_action)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import asyncio
|
|
|
|
# Run the menu
|
|
asyncio.run(falyx.run())
|