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.21.0-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13Windows x86-64

verlex-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

verlex-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

verlex-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

verlex-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

verlex-0.21.0-cp313-cp313-macosx_10_13_universal2.whl (3.4 MB view details)

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

verlex-0.21.0-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

verlex-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

verlex-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

verlex-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

verlex-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

verlex-0.21.0-cp312-cp312-macosx_10_13_universal2.whl (3.4 MB view details)

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

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

Uploaded CPython 3.11Windows x86-64

verlex-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl (13.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

verlex-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

verlex-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

verlex-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

verlex-0.21.0-cp311-cp311-macosx_10_9_universal2.whl (3.5 MB view details)

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

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

Uploaded CPython 3.10Windows x86-64

verlex-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

verlex-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl (11.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

verlex-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

verlex-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

verlex-0.21.0-cp310-cp310-macosx_10_9_universal2.whl (3.5 MB view details)

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

File details

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

File metadata

  • Download URL: verlex-0.21.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.4 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.21.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5c7718472a08fbded470cec05139bd9fc567754d7becb1421e4c946610dffa65
MD5 51dfde3bb173c68cc65827f11d760549
BLAKE2b-256 640fff6df2609b5748b5cbe0c2ef92d98d40c9dc124b69da417ad0298a622382

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a86786790f2227993755c8ea6c1b205bf98fccf88f3f848b64fe78c2206c3be5
MD5 8fa3082c0d08fab39f7b5efb331b8e06
BLAKE2b-256 3aec592685d5df2fd967e65bbd5f9a0e650a1650beaf52a49d0affd89ebccf07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a33558fa438aeeed2d4457ddc5516783bc00c869013cb8f834ca07bf7c6d2989
MD5 11fc602d34c9d53c29a4f23a693b19d8
BLAKE2b-256 fe1344b1ba761663c34e126db03547d49d33a05897d1d71a210fa9c15596daa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bb21db70459119047c28fda5b1542f7b8b17dc015e420411cdc0d0ca0fbc086
MD5 7c7b21250efcd4cb307b1fd2d8364a37
BLAKE2b-256 ccd6772377b1564a1a7a8c882519153626165cb392cd593afe225c38cbd15135

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7030734b278d5fdebefd76d0c89eb6f6da49e8dc444fa113a6d56e25626c326b
MD5 e9c352bb8c75ace3969e355511940a8a
BLAKE2b-256 5f2e50c94dd4e0b9e57c054b4c6a0f09e4d48d07d33eb9e207f6b1aae4a2f63d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 f9710b90d550101febb8678eedb5c831b712280816959eece02351bb7fc8da33
MD5 61420df7c6fc472a3b30a5e73682af4d
BLAKE2b-256 4ac5c319831ef51295a6b8e5252a2da8c166fe2685a626a12babdb5901f7fd67

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.21.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.4 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.21.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f79657fd2b238ff978c87b54cdf9d54f68b3600848273eade6933987c199a858
MD5 774561ffc69f81ffeec40a484a433e12
BLAKE2b-256 8461ff36788516731b694bb11324f168cb7147d24ece72fcce0ac56c4f0e6131

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ac38991ff6165d1aaec30a9db310b5b44e13bc89ee9a0978c6dd1543ed0cd445
MD5 ba49bb6e1e8ab0aa3aa1e0940c76c4d2
BLAKE2b-256 056d55f6e65f3e7174c91aff2757c0f3568eeaf8a6d73bcc0d060a0606383f14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d0b5a3a9797499db131a83f224619db74798fbe57da93c3ad4efac2c02044a6d
MD5 201767cd3d4f10a2cbd2662d01af7f9c
BLAKE2b-256 fb6a4c7ed87fe159fbbac44e2d53a4469e7bb5bec26684f09789bb1b1ce9ae20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85b5b12ba25adf9d2ffb3f248a812b8379f5c09de027b4779901fb139ddfc7e7
MD5 4fa4fa07a8d727b7e301c33090c478dc
BLAKE2b-256 36760173307c049f86f8b00f6597b541e0e942cb3cabc79c0b49eb50d348d10d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d2a18661b190c748e761d160949ee856373e1f789c521e0146c5fd40a87debc
MD5 cfd29c9fc6afa40be9337f282ed62e79
BLAKE2b-256 4ba139fd98724fc7ddac468de76d20e254ec77ecdcbd140bfc67d4c9412ab77f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 50126d7ba2dc384182478a776360305f327f33f08bf634989e37f7be2a6fd3f8
MD5 6ab70cf2cf55b0a397c2984f54c9caa4
BLAKE2b-256 df7cd5daf4c1c061622ef654029ca0bed14e3fb0be6730a95b781aed44e7e329

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.21.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.21.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 24e525900e13c2d5772d397811d49a76947d71becb4e73b0e8dc45d57dce9547
MD5 4466b6045562f3fbde0a2b1a48ff6137
BLAKE2b-256 2d8227d97fb105d520e40bc9297761c37545a93720a095eb82af7c214c163cdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 409fb512f462fa28ff61563bab63eb03174f39a072c49e3b6843f14c01864055
MD5 5e747f5bd357a9d86ed8d9072d723355
BLAKE2b-256 a3e11cc3d07fb0f6f8326c7f8b65c392678bb6a15c3b2bc86b96f386836437e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 952c9e7a74b4869b9c5b9a5f91e00e1e798edb8266486b9b808ece0723017da3
MD5 a0a0c7c220790331be2981a27b5ea023
BLAKE2b-256 5542de91ccd49a45bfdb1227498063ca3a2a747d82aca5f3bbc6ec2aed29bec3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aae9dd471544e2f2dd9b549373dda4ba8b67617aa5074327ba9a63ea08f2e0a8
MD5 469b4f134ff0eb64497e8679f03eb325
BLAKE2b-256 c0ca4195460335fa5ac0349a972eea834eca26030da255a2574832f26d3216a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 42d50ac5113e997a588e164dc9bc580d3bd3fb5d3843a16356a9ee980b93eefe
MD5 97a2a5f5dcbc19fb4c483bfc81455f50
BLAKE2b-256 ea7e874eb03b332af5d611ec9887c47068aeb31bc882c3dece582626c0f90a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 30e30efc8fadfff82af1ee0be63af6d564a337b6513c85c69b19c9bc5894c7dc
MD5 55ef1956c2ea515ac5676ceed8b460f7
BLAKE2b-256 4b808a5cde4d641d8d691a3510653197a2d4b30b7997ea404151686990e2d87f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.21.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.21.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 18a7bfc7a4ba800917e761d10b41b6413f1fc23e43b3035c77efd4d8315e13a5
MD5 4dda550dcfb03ae7620ee207c7435ddf
BLAKE2b-256 595494063f3ee3f104c8e84857a1ece52aa3176c1196c068b4112e362cd9ec94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 592eebd1cce06fbfed58423a1f82602bf7d2ba376873d8b3d1c1e6ed5e475535
MD5 2e3d99f0ad1276361c3f9d5e2ef58a25
BLAKE2b-256 54f059934221a40f96ab2ee97d96cbb9d53dde543d000a6040e12c85de12e40d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 422a8e509bdcbdee4bb4dfeb8cbaf227dd193b8fcf349e4ca1d5facdb331f268
MD5 2941463b98bc2190cf54f8e029a388c1
BLAKE2b-256 5f639345fc4d23360e1eb23305e1655e8a1d8429912a53579379f17dcc07abc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 431c99800af77524703d2186b83cccabf1002438568b154850c79f342e2a75da
MD5 406cda9b746274b3eea0352947d9a472
BLAKE2b-256 46844d9f50f6584e60cb297523a4252e7f41302678586980b6b31025c2e20bdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 33d603aed1f051df17ae3445651f459fcdd0bf9068f94da374393404a0709bdd
MD5 30285243721ec14403c3b87e05db882b
BLAKE2b-256 ef985253d3d56f3678148a3f4330fff946f0133be8faad98029e2ff6d4e2702a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.21.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2789de75d81eae013a25d4b7e6509c515f4406b941c4befa8c5d837673e3c728
MD5 a773d12ac0411716495e1fe82074b4b0
BLAKE2b-256 6f14a09f5169c44cbc6d9b062ad9cd993bc9f8878f5cf59f3c4d58cb8f704c48

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

This release

0.21.0 This release

24 files

0.20.2

24 files

0.20.1

24 files

0.20.0

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