This release is a pre-release and may not be stable for production use.
EasyEvolve
Give us an evaluator. We'll evolve the code.
EasyEvolve is a hosted API that improves Python code with LLM-driven evolutionary search. You write a function that scores a candidate program; the service generates, mutates and evaluates candidates in isolated sandboxes and returns the best one.
Invite-only beta. You need an invite token from the EasyEvolve team. The API, pricing and limits may change, and data may be reset during the beta.
Install
pip install --pre easyevolve
Python 3.11 or later.
Sign in with your invite token
easyevolve login
Paste the token when prompted. It is stored at ~/.config/easyevolve/credentials.json
with owner-only permissions. You can also set EASYEVOLVE_TOKEN instead.
Write an evaluator
Expose evaluate(candidate_path: str) -> dict returning a finite score (higher is better).
Use the Python standard library only.
# eval.py
"""Candidate contract: solve(values: list[int]) -> list[int], sorted ascending."""
import importlib.util
def evaluate(candidate_path: str) -> dict:
spec = importlib.util.spec_from_file_location("candidate", candidate_path)
candidate = importlib.util.module_from_spec(spec)
spec.loader.exec_module(candidate)
cases = [[], [1], [3, 1, 2], [5, -1, 5, 0], list(range(30, 0, -1))]
passed = sum(candidate.solve(values.copy()) == sorted(values) for values in cases)
return {"score": passed / len(cases)}
Run
from easyevolve import EasyEvolve
with EasyEvolve(evaluator="eval.py") as client:
print(client.estimate(iterations=5, level="low", budget=0.5))
result = client.run(iterations=5, level="low", budget=0.5)
print(result.best_score, result.cost)
print(result.best_code)
Or from the terminal:
easyevolve balance
easyevolve run eval.py --iterations 5 --level low --budget 0.5
budget (USD) is a hard cap: the run stops before it would exceed it, and unused budget
returns to your balance. A client timeout does not stop the job; use
client.resume(job_id) to reconnect or easyevolve cancel <job_id> to stop it.
Documentation: https://easyevolve.dev/docs
Metadata
Release files for easyevolve 0.1.0b2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easyevolve-0.1.0b2.tar.gz | 5.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easyevolve-0.1.0b2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.1 kB
Release files / easyevolve-0.1.0b2.tar.gz
| Download URL | easyevolve-0.1.0b2.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ee68d46f835f62be20034b3bc1143b07b8ed45084818abdee83e641712838db
|
|
BLAKE2b-256 checksum How to use checksums |
13ba8b386e0633be6b58717d781f4fe905985815a7baa894fa0065922c21f06d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / easyevolve-0.1.0b2-py3-none-any.whl
| Download URL | easyevolve-0.1.0b2-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e45aad45c495450dcf1127767aaf5f0745145d7c471f7bee4a169e90623f7cd
|
|
BLAKE2b-256 checksum How to use checksums |
1e0ccecafa8176d49ff88e75659aa95b7efeea2fe72b916983da0410b66e66f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|