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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

verlex-0.20.1-cp313-cp313-musllinux_1_2_aarch64.whl (11.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

verlex-0.20.1-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.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

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

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

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

verlex-0.20.1-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.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

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

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

verlex-0.20.1-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.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

verlex-0.20.1-cp311-cp311-macosx_10_9_universal2.whl (3.4 MB view details)

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

verlex-0.20.1-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

verlex-0.20.1-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.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

verlex-0.20.1-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.20.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: verlex-0.20.1-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.20.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2d929402596e2531be3966ac46726d1e674aab1bbd43189495a5b42be82c9eaa
MD5 c7e43d1a491ce6b1d4bcfdcc663a3499
BLAKE2b-256 db4ad883ef541299e51a4701628f4b47dfb33d4b4c80c78543c8de530be16108

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1706e1fe387e58b231c5279b6e6b1b1d36cca03eb1b21123d573e6a690b1fac4
MD5 15deb735d71c79c6749d5b4c9efa8415
BLAKE2b-256 8de10753c383e6fff5396e502ddea4ca49aa943975b4fd6167487de93036fec7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e340320f132be5b544c54c1fc764b76931ddef192f68b8f7ea61d3707b678b6
MD5 00b2524d5bae20675ba57741e2ee585a
BLAKE2b-256 e59b12e9206a8594ca7426973a0f2f23825a0e45ea38dfea5892c63349601d7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9117b07bb38ece60dfeea843731279557ff960e87b1a005079ecb9bc3d29ada
MD5 346a42a9e18a30ac77afce87b8ca38ea
BLAKE2b-256 1624003ddf36dc7e9dfa3a4d827498588d528b762081180499b87d2718b99c55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8f7cc3514e50a757138d012ee5ea0675c280d3d6ef361a5c1ba60024f93c1e36
MD5 3adf9097190592f10c9df92cb946e18d
BLAKE2b-256 75c15297ab194b76238171508c0a57a4d1cbe0fa8248059690cec14294ed1bb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5f7e9477a4950439ae798a64082fcb807bfacbb006145627008eb44784a147ec
MD5 e78cbfa3876ead762484061e38f2495b
BLAKE2b-256 478279e4a07fbcf3b62cb8ec38e059d2b48081a2b139a061ecb2b6d5e9ffcf02

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.20.1-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.20.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2f0983a36493e2ce0cf22fb92846d2c08531cab306f236b3c7203aaf93b7a240
MD5 0df32669e4ebf855e0f7867da480760e
BLAKE2b-256 baf61adc83987f5aedd98c11d1946aa4b4cef6a587cc02b8d0476d4b28376861

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 74a9d6176773d7ea41f6a16b163bcda229819474df6a77b66c483960e355ff9b
MD5 c21cfd3a172813f9345db88587a30ee0
BLAKE2b-256 ebfc3e13353870acde7aa59acfe37169765ef0cd9f2953a422a04eb8a1d4645e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7e3da9a3ee40db6a41ee907a7edf3f849c9bd952680d055b7c949918f4d1b33f
MD5 47653766b73f523027c2b7cc58f4184f
BLAKE2b-256 0055dc0d0ab72fa0855e9a5c83dba8f1bb43b4489570966262fe66d91b3956bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 012eb9ec479c8d6079b1305e38e4d03179858d8f5d270a2591f39f6607b161ba
MD5 6024fa9cd6581d3ed5ea2e97f14a0cd0
BLAKE2b-256 af08dfbaa3bff04cf32cd6bbcfad1a055b5ed160b04948bb948e7ee4224d9a33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7b7324eee192b937f4c8411eb3940f2f8f4549ded6316a69fad4a5e8ffc2934
MD5 8e6cfd32b21877af2c89e14bffde0e63
BLAKE2b-256 6e8a6613d994b0a49a4a4b6049113e64d0b065faa8dd33920bd9148d57149e73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 15dae549b0a60435468606bae0bf12f794c558f358a8f7cc616463502e1e759c
MD5 9b80c0bf2bce32a0984b0fc0dfd92613
BLAKE2b-256 ec13ee953e5b0f44c79313e99e23eb63eb0854319e72b1adf8f123da05f694c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.20.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 567b06e0d684fdf03e8cad26fe42cc17a8ecc0e04fbcd0bcdaf01dc18ed7c0ef
MD5 0eb64fa3d256a12219cd92bfd3100da6
BLAKE2b-256 54126700b5f7404c58143121c974c61868438a94136f1a5f80791b1003bc56e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 74ac5be7b3d46d16270f079b4c3107b61a6b00cce65e8b4faf6eaa15500ad62b
MD5 82a5e2b43cb29af2a248fa68dd2f6c7b
BLAKE2b-256 8612f30041acd932d70ae86a0646b2c516f2bc7372a8f5ed45905e30a3c64422

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6ab78bc0da65011b3885fb348d51d8da81b0b1ff01fc688af839542510b4e4f1
MD5 7041ddf2b3185b8d825ddff4b5e030a8
BLAKE2b-256 a303fbb672eba88daaff8750dc0536ea8503d4fbcfdb508a28a795381101182e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0314cfa7231415a85cf49e23c688a79d7efeb8cb7e02d093743331797d0ccaae
MD5 71668238134b35a3b71d21ba7e7e074a
BLAKE2b-256 c30f8c23993f77a21e14d7bb23ce8f7625c1f14da06cf64b2c73a16994ece6cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ddfea6956ccb19d2319be0ce374bc7a5493515d43451cc73d353513ff12b1291
MD5 be8c5958166c3ea69517aa6908a1648c
BLAKE2b-256 4160850f5a51e4e2860ff0fa64078ddaae0f025708885ca1a723814b39fd1ea3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 685936705bea9ac42b0a0a802b82bd2b11f5b2be2316e07dec47ececa59796e0
MD5 48e79b5df0e9c50cec5fc9a0d623a1ce
BLAKE2b-256 7219b672c40484180a81f305da7c4e68e16ce068fb8b67cc79513af6dc7ded31

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.20.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.4 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a0dd4dbd83593b621780bd75c2f2d498dc2bfa5916dbf7b423ed1b29af3889ae
MD5 edb996a3509cf7b9a6021aee5fbb6e76
BLAKE2b-256 6116e775934a43e309c12c80a1ccad94c99caddbd53b39c31cdb4a38fafa7ef8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 baf7ed17e5e9aa4ea546368a53081a87bfb9aa30f765b5a540c17d8c8a765ec2
MD5 06e14a3d2446be57b3c09ba1360e7adc
BLAKE2b-256 ec676eab3125dc0ef8d60214f033afb3b3b62b5a45512f3e269a18e5a7e5da51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c4e00028700669f1ee528eb06bb50443a0b3e6dfbcf6a8db0b570db12f2d66fb
MD5 8ec7b1ee3573ae1ab1660da659f1eca5
BLAKE2b-256 a037bfef3f525ed00d4612db5322a7188a17d866950800b5a2f533c8dd0b6ebf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca3c997f35480e6d0140c635f6ac42d6437b2612601a16fe2b258e35d1a6d6d5
MD5 d97056c722f2992af407ca7261cf1f25
BLAKE2b-256 b9d4319808ade381b343ca3ce560da66c0ff0525cb4e1ff75c59eaaf22ce073b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2eb0c0e8932705cc1720169bfd84a3a3669b24296da5a15fd1b8f6f13e1c76a
MD5 63e1fcb5c2e7aecb99fc1cccb525da38
BLAKE2b-256 422b5833c98a51a3d1d6013c481aab6fb3c1b17905156b1413cee2fad12365eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 244bfb771e9628204d91d1f35fc63349664bf08da07cb19845c1328dbcec5808
MD5 5692d39fce533aeec99ee7ab9ad071c7
BLAKE2b-256 8568b2f166c4c24658fecfd99cf276261d21a1552d05b841330a93f1c786f1ac

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

This release

0.20.1 This release

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