Skip to main content

Official Python SDK for the Vilvik genetic-algorithm cloud API.

Project description

vilvik

Official Python SDK for Vilvik — a cloud platform that runs Genetic Algorithm (PyGAD) workloads with a REST API, scoped keys, and webhook delivery.

pip install vilvik

Quick start

import vilvik

client = vilvik.Client(api_key="vlk_live_…")

submission = client.submissions.create(
    fitness_func="""
def fitness_func(ga_instance, solution, idx):
    return -sum(s * s for s in solution)
""",
    num_genes=5,
    num_generations=100,
    sol_per_pop=50,
    name="quadratic-minimisation",
)

print(submission.id, submission.status)        # "abc123…", "queued"

result = client.results.wait_for(submission.id, timeout=300)
print(result.best_fitness, result.best_solution)

The run() one-liner

For scripts and notebook cells, vilvik.run(...) packages create-and-wait into a context manager that also cancels the run if you exit the block early:

import vilvik

fn = """
def fitness_func(ga_instance, solution, idx):
    return -sum(s * s for s in solution)
"""

with vilvik.run(fitness_func=fn, num_genes=5, num_generations=50) as result:
    print(result.best_fitness)

The API key is read from VILVIK_API_KEY if you do not pass it explicitly.

Listing and pagination

The list endpoints return a Page whose items are typed dataclasses; for walking everything use iter_all:

page = client.submissions.list(limit=25)
for sub in page:
    print(sub.id, sub.status, sub.name)

# All submissions, transparently following the cursor:
for sub in client.submissions.iter_all():
    ...

Branching a finished run

B7 — branching run-graph is exposed via Results.continue_run. Each call creates a child submission whose parent_submission is the result you forked from. Pass any GA parameter you want to override:

parent = client.results.get(result_id)
variant_a = client.results.continue_run(parent.id, mutation_probability=0.10)
variant_b = client.results.continue_run(parent.id, sol_per_pop=100)

The Vilvik dashboard renders the resulting lineage as an interactive tree on the result page.

Errors

Every SDK error inherits from vilvik.VilvikError. Subclasses let you catch specific failure modes:

try:
    client.submissions.get("does-not-exist")
except vilvik.NotFoundError as e:
    print("Not found:", e.request_id)
except vilvik.RateLimitError as e:
    print("Slow down, retry after", e.retry_after, "seconds")
except vilvik.AuthenticationError:
    print("Check your API key and scopes")
except vilvik.VilvikError:
    print("Something else went wrong")

Configuration

Argument Default Notes
api_key os.environ["VILVIK_API_KEY"] Required. Bearer token created in the dashboard.
base_url https://vilvik.com/api/v1 Override for staging or self-hosted instances.
timeout 60.0 seconds Per-HTTP-request timeout.
max_retries 2 Idempotent (GET / HEAD) retries on network errors.

Development

pip install -e ".[dev]"
pytest

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vilvik-0.1.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vilvik-0.1.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file vilvik-0.1.0.tar.gz.

File metadata

  • Download URL: vilvik-0.1.0.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vilvik-0.1.0.tar.gz
Algorithm Hash digest
SHA256 836783e0e5c192fbd4a20abe87b13791215c7757598f2d742479ab4813453591
MD5 51eecbbc88eb0bceafdfc8eba20bbc18
BLAKE2b-256 33547f834e24032a62cc8e7f95e6a900b6d42ecb9bc8dc80c4b917fcafcf4497

See more details on using hashes here.

File details

Details for the file vilvik-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vilvik-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vilvik-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d260b7c6f963ea0ae1145699ff1abb0599d7a690f71df391de8c11af570d941b
MD5 d6fd8b44c36bdb61f0de6d124f101b77
BLAKE2b-256 d96b12dc96d1eac5886357844fba5fd42e8b854a4aff3a68b6682c60ad6e6ba2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page