Skip to main content

Verlex

One line of Python. Every cloud's best GPU price.

Verlex reads any Python function, picks the hardware it needs, prices it live across 10 clouds, and runs it on the cheapest one. If a provider fails or stocks out, the job restarts on the next cheapest, automatically. No hardware picking. No quotas. No DevOps.

The provider's GPU price passes through at cost. Verlex adds a fixed service fee per GPU-hour, prorated per second. That is the whole model: no percentage markup, no hidden margin.

Installation

pip install verlex

Requires Python 3.10, 3.11, 3.12, or 3.13. Grab your API key from the dashboard.

Quick Start

import verlex

# Define your function
def train_model():
    import torch
    model = torch.nn.Linear(100, 10)
    # Your training code here...
    return {"accuracy": 0.95}

# Run it on a cloud GPU - that's it!
result = verlex.cloud(train_model, gpu="A100", api_key="gw_your_key")
print(result)

Basic Usage

Pass your API key

Every function accepts api_key directly, no context manager needed. Set VERLEX_API_KEY in your environment to omit it entirely.

import verlex

result = verlex.cloud(my_function, api_key="gw_your_key")

Passing inputs

Your function's inputs come right after the function. A function that takes a single input accepts a bare value; a function that takes two or more inputs must receive them as one list.

# No inputs
verlex.cloud(train_model)

# One input, a bare value is fine
verlex.cloud(square, 5)

# Two or more inputs, pass them as a single list
verlex.cloud(train, [dataset, epochs])

Specifying resources

Every hardware field is optional, and only the fields you set are pinned. Whatever you leave out is sized from your code and chosen for cost and availability — asking for a GPU and nothing else is the normal case.

# One GPU pinned; cpu, memory and provider are chosen for you
result = verlex.cloud(train_model, [data], gpu="A100")

# Pin more when you need it — each field is independent
result = verlex.cloud(train_model, [data], gpu="H100", gpu_count=8)
result = verlex.cloud(train_model, [data], cpu=4, memory="16 GB")

# A list offers alternatives: the cheapest available wins
result = verlex.cloud(train_model, [data], gpu=["H100", "A100"])

Reusing the same machine? Wrap it in a Hardware object — identical meaning, one value.

from verlex import Hardware

big = Hardware(gpu="H100", gpu_count=8, memory="512 GB")

result = verlex.cloud(train_model, [data], big)          # positionally
result = verlex.cloud(train_model, [data], hardware=big) # or by name

Values are checked in your process, before anything is provisioned: a misspelled option answers did you mean gpu=?, and gpu="64 GB" tells you it belongs in memory=. A Hardware and a keyword that disagree about the same field raise rather than one silently winning.

The full set of job options:

result = verlex.cloud(
    train_model,
    [data],
    gpu="A100",        # GPU type
    cpu=8,             # vCPU cores
    memory="64GB",     # memory
    provider="aws",    # pin to a cloud (omit to let Verlex pick the cheapest)
    timeout=7200,      # 2 hour timeout
    pip_packages=["numpy==1.26.4"],  # extra packages, always installed
    python_version="3.11",  # match your local Python
)

Execution Modes

One flag controls your price-speed tradeoff.

Mode Flag Behavior
Performance fast=True Immediate execution. Best for time-sensitive workloads.
Standard fast=False (default) Up to 10 min wait for the lowest price. Best for batch jobs and cost-sensitive work.
# Performance mode, immediate execution
result = verlex.cloud(my_function, api_key="gw_your_key", fast=True)

# Standard mode (default), wait for the lowest price
result = verlex.cloud(my_function, api_key="gw_your_key")

Performance mode (fast=True) requires the Performance plan ($10/mo). Standard mode is available on every plan.

Pricing & Billing

Two parts: a monthly plan, then a per-job cost. Verlex passes the provider's live hardware price through at cost and adds a fixed service fee per GPU-hour, prorated per second. There is no percentage markup on the hardware.

The service-fee tier is derived from the hardware's FP16 tensor performance (TFLOPS):

Tier Example hardware Standard (fast=False) Performance (fast=True)
CPU (CPU-only jobs) No GPU $0.02/hr $0.02/hr
Small (<185 TFLOPS) T4, L4, A10, RTX 3090 $0.10/GPU-hr $0.20/GPU-hr
Mid (<600 TFLOPS) A100, L40S, RTX 4090 $0.30/GPU-hr $0.45/GPU-hr
Large (<1500 TFLOPS) H100, H200, MI300X $0.40/GPU-hr $0.60/GPU-hr
Flagship (≥1500 TFLOPS) B200, B300, GB200 $0.50/GPU-hr $0.75/GPU-hr

The service fee is charged per GPU-hour, so an 8-GPU job pays it 8 times. There is no cold-start surcharge; a cold machine and a warm one cost the same.

  • Per-second billing, 1 second minimum. Both the provider cost and the service fee are prorated to the second. You pay only for the time your job actually runs.
  • Prepaid credits. Buy credits in the dashboard (minimum top-up $10). Each job places a hold and settles the exact amount when it finishes.
  • Auto top-up (opt-in). Adds credits with your saved card when the balance runs low (default: $50 added when it drops below $10).
  • Funds-based execution. There is no maximum job runtime. A job runs until your credits are exhausted, it stops making progress, or it finishes. The optional timeout argument is a client-side wait bound.

Plans

Plan Price Includes
Standard $0/mo, free forever Standard mode, prepaid credits, per-second billing, 25 GB storage
Performance $10/mo Everything in Standard, plus fast mode (fast=True) and 300 GB storage
Enterprise Custom Organization teams with a shared credit pool, 1 TB+ storage

Per-second billing, no credit card required to join.

Providers, Failover & Serverless

Every job is priced across 10 clouds (AWS, GCP, Azure, Verda, RunPod, Vast.ai, JarvisLabs, Hyperstack, TensorDock, Lyceum) plus four serverless container lanes (Beam, Northflank, Novita, Cerebrium), and routed to the cheapest machine that fits.

import verlex

# Default: priced across 10 clouds, routed to the cheapest machine that fits
result = verlex.cloud(train_model, gpu="A100", api_key="gw_your_key")

# Provider list: cost comparison and failover stay inside your subset
result = verlex.cloud(
    train_model,
    gpu="A100",
    provider=["runpod", "gcp", "verda"],
    api_key="gw_your_key",
)

# Hard pin: one provider, no cross-provider failover if it is out of stock
result = verlex.cloud(train_model, gpu="A100", provider="aws", api_key="gw_your_key")
  • Automatic failover. If a launch fails or a region is out of stock, Verlex fails over: nearby regions first, then other providers, then substitute GPUs, always cheapest first. Your job does not fail because one cloud ran out of capacity.
  • Pinning. A single provider pins hard with no failover. Prefer a provider list, which keeps cost comparison and failover inside your chosen subset.
  • Serverless. Small jobs route to serverless container lanes (billed per second) when that is cheaper than a VM. This happens automatically; nothing to configure.

Files & Workspace Sync

Send local files up to the VM before your job runs and bring generated files back when it finishes. Pass a Workspace to any cloud call. Auto mode mirrors your project root (respecting .gitignore) and returns whatever your code creates or changes; or list explicit Upload and Output specs for full control.

import verlex
from verlex import Workspace

def train():
    from pathlib import Path
    Path("runs").mkdir(exist_ok=True)
    Path("runs/loss.json").write_text('{"loss": 0.42}')
    Path("model.pt").write_text("weights")
    return {"status": "done"}

# Auto mode mirrors your project root up to the VM, then returns
# new and changed files to the same paths locally
result = verlex.cloud(train, workspace=Workspace(), gpu="A100", api_key="gw_your_key")

# ./runs/loss.json and ./model.pt now exist locally

Your function runs inside the synced workspace, so relative paths like open("data/train.csv") work unchanged. Import Workspace, Upload, and Output from the top-level verlex package.

Dependencies

Verlex scans your function's source, pins the versions of imported packages installed locally, and bundles local .py modules automatically. When you need certainty, pass pip_packages: those packages are authoritative, always installed, and a failed install fails the job loudly instead of continuing silently.

result = verlex.cloud(
    train,
    api_key="gw_your_key",
    pip_packages=["torch==2.3.1", "numpy==1.26.4"],
    python_version="3.11",  # 3.10, 3.11, 3.12, or 3.13
)

Pre-warming

Kill the cold start before it happens. verlex.prewarm(fn) analyzes your function, boots the right hardware, and hands you back a handle once the machine is ready. Calling the handle runs your function with no provisioning wait, and the machine stays attached between calls, so every call is warm.

import verlex

def train(batch):
    import torch
    ...

wf = verlex.prewarm(train, gpu="A100", api_key="gw_your_key")  # A100 starts booting NOW

data = load_and_clean()      # local preprocessing runs meanwhile

result = wf(data)            # runs train(data) on the warm machine
more = wf(other_data)        # still warm, the VM stays attached

wf.release()                 # or use `with verlex.prewarm(train, "A100") as wf:`

Automatic Cloud Offloading

Don't want to manage when code runs in the cloud? Let Verlex decide. verlex.overflow() watches CPU, memory, and GPU. When usage exceeds 85%, heavy functions are transparently offloaded to the cheapest cloud provider; everything else keeps running locally.

import verlex

verlex.overflow(api_key="gw_your_key")

# Your code runs normally.
# When CPU, memory, or GPU exceeds 85%, functions go to the cloud.
data = load_data()
result = train_model(data)   # system overloaded? → cloud
evaluate(result)             # resources free → runs locally

Install the monitoring dependency with pip install 'verlex[overflow]'.

Checkpoints & Spot Recovery

Spot capacity is 60-80% cheaper than on-demand, but the provider can reclaim it at any time. Anything your job writes into the checkpoint directory syncs to object storage while it runs. When a spot instance is reclaimed, the job is re-enqueued on the next cheapest capacity, the checkpoint directory is restored before your code runs again, and the reclaimed time is not billed. HuggingFace Trainer, PyTorch Lightning, and Keras jobs resume with no code changes.

Available GPUs

Request a GPU by name (gpu="A100", or as a spec value). Verlex finds the cheapest available instance across all 10 clouds: T4, L4, A10, V100, A100, L40S, H100, H200, B200, B300, and consumer RTX cards. If you don't specify a GPU, Verlex auto-detects your code's needs and picks the best option.

Authentication

import verlex

# Pass api_key directly to any function
result = verlex.cloud(my_function, api_key="gw_your_key")

# Or use the environment variable (VERLEX_API_KEY)
result = verlex.cloud(my_function)  # picks up from env

Both gw_live_ and gw_test_ prefixes only name the key type; every key runs against the live service with live billing.

Error Handling

Verlex raises specific exceptions so you can handle failures gracefully:

from verlex.errors import (
    VerlexError,              # Base class for all Verlex errors
    AuthenticationError,      # Invalid or missing credentials
    InsufficientCreditsError, # Not enough credits to run the job
    ProviderMaintenanceError, # Pinned provider is under maintenance
    JobFailedError,           # Job execution failed in the cloud
    JobTimeoutError,          # Job exceeded its timeout
    SerializationError,       # Function could not be serialized
    NetworkError,             # Connection to Verlex API failed
    RateLimitError,           # Too many requests
)

Links

Contact

License

Apache 2.0

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

verlex-0.20.0-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

verlex-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

verlex-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

verlex-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

verlex-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

verlex-0.20.0-cp313-cp313-macosx_10_13_universal2.whl (3.5 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

verlex-0.20.0-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

verlex-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

verlex-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

verlex-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

verlex-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

verlex-0.20.0-cp312-cp312-macosx_10_13_universal2.whl (3.5 MB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

verlex-0.20.0-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

verlex-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

verlex-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl (12.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

verlex-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

verlex-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

verlex-0.20.0-cp311-cp311-macosx_10_9_universal2.whl (3.6 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

verlex-0.20.0-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

verlex-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl (12.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

verlex-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl (12.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

verlex-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

verlex-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

verlex-0.20.0-cp310-cp310-macosx_10_9_universal2.whl (3.6 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file verlex-0.20.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: verlex-0.20.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for verlex-0.20.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 db014696b682df9e7fc18e8caf58d586b4cf44c181d94521694981f7620efa80
MD5 6cd305d100fccdedc52d6b411282575a
BLAKE2b-256 b4fea3a94b13db8a418bd94a8f317839779d3a52031b2fb27f21c51a975d77de

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e5525da23761fd08222172e075d6c3ad4485abd9cbed8c995e9b704307eec3fc
MD5 b0cc8dc1629b36701d42dc0e38431756
BLAKE2b-256 6e8f9b391d6950ce38ce430b6e609be3c3adadc7d27f1dc35b33aa40c6e351a9

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a500af391aab4849c88e6a9aca0200186ffe1f63429e97aec795d173926e3ef2
MD5 c0f1609842a11e6db01640ad440e4a8f
BLAKE2b-256 970e814f03c9a503c0ec59c8708f123fa5fa415ee50da04b7accc8f6b734c016

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8e7f0b5bee3475ed0cb2fa380b1f03deb8a8919509377a959dbd37c3570c9c1
MD5 8acc1dbfc2f39bbf84de6db4f6bba42e
BLAKE2b-256 6488248e6c74540021be0efc27912d81312a82cb141c979248cbba45595c8bc7

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 20fdd841e454371eae613ba67a0df42b04e720401bc3e7edd8075805370c1d63
MD5 47deeb23722495a24e47042ca1a3d3cf
BLAKE2b-256 a583e5f28a5a9242b9a15c04c011d491702f90e653400b91a61e935b98f048f0

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d673166164cfc6fd6a2de9ccae69cd5bf34e145d0c47d29d9c60675d134101f0
MD5 5983463521c6e473610b89316fc1bb4e
BLAKE2b-256 1afa014f6e09f1b05fb4e56912978e736f75cd61ce507f8a53986cbdc9a10349

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: verlex-0.20.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for verlex-0.20.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1f9d5a15756add8e8f2c1b12bb2915cb563bf8a9b0d0ceb5ad09cefaf466810c
MD5 98c9a52453b223763d1f413c53d64daf
BLAKE2b-256 21ae8062f090984dc27160e163f956e60615da44abc87add994129bbdf1203b5

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6ca5dfd40dfece72bff8e485a79c3e396f8dcdbc37217ac355390c2137d1809d
MD5 25e0a9cb22a1afb964c96965c2020efe
BLAKE2b-256 52964468ca29b6174560686217f34069aae83f15736a42a20fed07b6265c8fb0

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 61e959420d8497e2a2116cd6b2650ab972f86c293d60ee5bf37b839d33b64a10
MD5 8c279334d07f8cf2f4cea6f689ee1588
BLAKE2b-256 7517e982362930d959356c798efacfef13a24b4fa51802a0434e522721120f5c

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d67c2ddb8824492d1ccd4755ad1a9238cb729c7661553686bcc267c3a3d61aef
MD5 6f5be447a10cc6961f1ed6f08b30f183
BLAKE2b-256 9d829cc97d321215f98e52b8525b04403627f2cd9477483ee35d0f6a509c46d0

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 197750bf6435effbc76a94f7dbe50c5aa183ff4e1beeff81a447c6d45679b812
MD5 5da93af7eeb003bab14af3f39bdcbb05
BLAKE2b-256 b7e10cea202e6347d90aeef337417af9d6e358f43a264efd074e009174605c83

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 9a1e8319de9cc0048a329dcd3b9f9e150526751b591547a075679c25ba8232c9
MD5 8fa9b8b98644aa6353a1daad89188b10
BLAKE2b-256 ddce6f862ab18ecd6eb90b60c49f7b7bb26aefbb46c6cf6a6b86f31f8cf09799

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: verlex-0.20.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for verlex-0.20.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ef3b2fd50d67ec3310dd069cdcf805b9cf4cc3049c3bb18d21fd85283c7ebdd9
MD5 52cd80dddfb14cbe2274426a5354cf64
BLAKE2b-256 0b3d9aad5a02761d32624e7d3c9fdea1d3cb1849eaecec360b8a573062782864

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 abb10a686303e4b8428a66b396fa9e4bd6fa155a6e1bb1a80a1fbd971097859a
MD5 9e1044b393d2b9b5eef70fdca033a7c1
BLAKE2b-256 2100e3e398885f5cc2d7ae85638be597c65ecb7c0c52b6f60476d41128b6cdce

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 50e836fc9729d27b2d8586d2f17a8ea1e950a64fd20ee958d0e9511b037e17b7
MD5 1773e14a6879e8ef9c9a230108e9d5bb
BLAKE2b-256 db28c32ad93ad5b291371239fb6a18ae061dcff27d3dda33e4b90ffbf3a52d43

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2430985f9961c522c255c1dbc228c224e6a3824c2491cac9250f893629533b9c
MD5 9caee1a3cab534c21d35cf9bfe156e2a
BLAKE2b-256 c025dc1a676fe52a7074de3b22534cff525dd835cfbd9947cc99a811029cc6ae

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 112bb5447965e72d47ef04a88646b5518dbc097f88ac445a35c07e0efcc183f5
MD5 32ff9ea6a469cfdd7d7443b646bd3481
BLAKE2b-256 2506f89b853e694633a656d011534dcc992098854232cef88b3f6843b6b123fa

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 60f1c5529d996d42e032a38c68e4eb7c40e31511f3a898b367f20008a1f2e2b1
MD5 0ec14a27b77d5d274ae2934d5b773b40
BLAKE2b-256 0b930c2f342f109126fc94c7bb5cd4893df38368397562b6124800eefec37f72

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: verlex-0.20.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for verlex-0.20.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3cfb87d8b55524430f3a1bba66011efc5389209cdd4cb477dfdd132ddd186e0e
MD5 7f2bedf8c297fa2aa3ce8ce5ba577fc0
BLAKE2b-256 8ded2fd76bce8f6cf0bf02cc3e1884ba3b63a88dab54515951b99caafbd4e16e

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e4b7a60d396da23d8764a6bde6ab9228d26802c63ccb0f4e2a1c3cccf5fa18f0
MD5 3864cd4be23fa90c6ccfae89c9b12d22
BLAKE2b-256 960218c2dfc14fb2c538938cc2a475b4cb5f0df701a20076a3e764b37c185eaa

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 12fabf007e209a5d190a4907439a77587ed43d3ae5bd4b152c4b7f432f9deb3c
MD5 c9e81e499d3d8ff27b6f681bc4fa49d1
BLAKE2b-256 c3279f56b77d00173fe0fc91c61a6e30f1d056a365f915e180025adc8a50f1f8

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4af2235442d9ad32a045daf1a555c661dfb58ac4747bab0bbc1811bcf467762
MD5 0e884587d0b67cabac721c1b98036005
BLAKE2b-256 e51d7c8ea4a7be9ec5f312bb495723d40633a69384075c6e5e32b93986a7dda6

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f5789f78a8d87a60407d85a8ce4e15ad9435c673c63fbe64efffe9a3afb0440
MD5 af55d5ec8c07518349d7bfd1e259f21d
BLAKE2b-256 6afdec7af343defc5f00d619c0c87056e6b768587cacf856581f5ee9b539cfed

See more details on using hashes here.

File details

Details for the file verlex-0.20.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for verlex-0.20.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 50329f9df53cb8ddc079a37f184648d3853705d8cecca1ca5a4699ad9b3cecb1
MD5 b13f0b91df0696496e19ce8942636c6c
BLAKE2b-256 8006c77c31293bf9b2ae8a297a695b71ce6e8aa7607743330e0b61336c0e9c7f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.22.3

24 files

0.22.1

24 files

0.22.0

24 files

0.21.0

24 files

0.20.2

24 files

0.20.1

24 files

This release

0.20.0 This release

24 files

0.19.0

24 files

0.18.1

24 files

0.18.0

24 files

0.17.2

24 files

0.17.1

24 files

0.16.1

24 files

0.16.0

24 files

0.15.3

24 files

0.15.2

24 files

0.15.1

24 files

0.15.0

24 files

0.14.0

24 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page