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

Uploaded CPython 3.13Windows x86-64

verlex-0.20.2-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.2-cp313-cp313-musllinux_1_2_aarch64.whl (11.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

verlex-0.20.2-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.2-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.2-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.2-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12Windows x86-64

verlex-0.20.2-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.2-cp312-cp312-musllinux_1_2_aarch64.whl (11.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

verlex-0.20.2-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.2-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.2-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.2-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

verlex-0.20.2-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.2-cp311-cp311-musllinux_1_2_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

verlex-0.20.2-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.2-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.2-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.2-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10Windows x86-64

verlex-0.20.2-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.2-cp310-cp310-musllinux_1_2_aarch64.whl (11.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

verlex-0.20.2-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.2-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.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: verlex-0.20.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c98aabb070c23fc89e1f1c739a2a6db0ef9e0de29808441eef54366423c5e844
MD5 1c0610bb1a6b3d4b96bc23cf4d235b53
BLAKE2b-256 9b4d6e3d81faf9659f8a21aafe083a1676d4425b1c41f8b3c9cb3e93b7c44afb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 474b268232c2531e3c4ec46f6e44867b75c09decfef7bb9e869588b409efb28b
MD5 daa082cd5ed50e85c7321671f500da0d
BLAKE2b-256 f99f92a6af8869827c6552b2fce3ab4e81133519ed11f8b0241c6badc5a4d819

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97d1c4604ecbe74a031ae16da7006035646cf2f9a93cf56112c6f00ebe34cf6b
MD5 51118c33ec8eb3626ded850587ebbac9
BLAKE2b-256 2b52da8726cf45926caff417c4810f2b9992274c0003966ebfe285b993f8523a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f94849ee5c3a7536cbe63ebc57644506178862b466cf8bacf28eed4c30685f78
MD5 d5bca9c1f305b10592a976125b345c06
BLAKE2b-256 7ad99f78b25fd75830e2a9945ee16659e091079e21f06f291f549f12f5008318

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a24a2ba2b7a5c6e395bff7369890de297d3f4170e5840183a19e871686d3b94f
MD5 66c38632c6d7142be79b4ad53af2cbf5
BLAKE2b-256 0f3ca4c42968701ebaef13f7af1e19241ea43e4751bec08ef69dcbcca597ea5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a15ec4894eec0c674ad708df992da8d50095991391ace570161e722a8b3f9d7d
MD5 310a8c9948251477c2b75a15da746b16
BLAKE2b-256 a66cb5aaeedcd6495d1f31edd9afc2954496cc0f48858178076c06a818e912f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.20.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3a8d6be58869b9e9890e77e7c6876ff555d04e1743d2e805f2488e55db9c3a52
MD5 a6865f355690ea819f8edf3066376051
BLAKE2b-256 a6e61c762c5aa6cc3d9d29698fecbfc8a1cedda07dd649be40c01bc89ab5dd3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b6eb3792339c0ad3db0700d40d911b2cab43be38a5fd232cf7b1158ade63202
MD5 1a866169558b225d18759eaae563ee85
BLAKE2b-256 764817b0d993a59bcd1e2ae87f0d23860b234c1183612f5f9667d04ae4aba97c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1a55f2614694cbde73c29ee260d8b4a45752df5278162518d644c3da929d8e0f
MD5 3c6ea5ecef8b7565ec0c11373686cd18
BLAKE2b-256 aed2d824fa2df854374341e5e71fafdc0dcaff1f2259a778563c1a775169b871

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a7cbfbc31e30710d29509edff88f8e9e7bbce293368c0f9f976164c406c3846
MD5 feec1e960a998c267bc0c33a672076fd
BLAKE2b-256 6f743d22ac4a2c31cedffc93a61d1e64767b5960cca37b33909c6d83e21e2051

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ea9660c20c474d1ae16479b329203cc0cdacd1ea08cdad391e9111dd1de4a1b
MD5 ae4f63f0f27994fa6d62e491597d3c6a
BLAKE2b-256 f1c942ceb91844ab6e26389f3cc6cc778599bedf4949500110ad2fbcf4f0656d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 538a99c8127368b06e9cb8c95ecb79a0d95a7c5fbdcf76c04ca055d24b77e9f8
MD5 639caad7e52f0d00ad0a62550b45cf08
BLAKE2b-256 c35025aa9de84c745fc6c55fbc32e7d4e401fe38f09a4825b929c23e98febb5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.20.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2a5ebcf6b56d0131febe13b6b50e9a9f5d302c6a3857d0e087ff77509a14ba02
MD5 cc60026f8468c1b23a6aa0c84a218ee7
BLAKE2b-256 746d3c0d3d9cd3faed5a3fa87911943c33f98fd7aebca9ec9c03bc869635edfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 67d175ca637b2ae9c3974f4b80193899c9984903d5a393b8b2fdde958ee812b8
MD5 401446e270e0f8e7f0ab264e8a45b5ee
BLAKE2b-256 3c32f710ce8bba3285647f4a0085afb9d3e575849fccc3720a5d5ad271ef1ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7fd2003e405b5036f7552b7668b1865b5771e143acc270c908a04100c2806742
MD5 fc06a527b7b97bdb64357486d835b790
BLAKE2b-256 d396214295c9babfd560d60a9d52868f5ccd90e1e15328803b87881e0a277fce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c3330aac78b55145b2520cd5db0f557b209cad02d46b445493d37e59946c68e
MD5 1e2b7838877d1b05598a02ccd74036d8
BLAKE2b-256 9b775f6ea63556c5dd247e1525851b99aa0a96640aa9b8a69cc1f42c070636d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cb7d17d309fd0799fb852d3a92b53ecb9681895906461cc5239729a953aaded6
MD5 bc09b89fd70d9244429f882a486e8c6c
BLAKE2b-256 97020436e635aa3037a138414789b2d885dab8a950063395231df37bb950246d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b79c0a3d8d261bc6d6a56a76a35110b8113dde280fd4d850b326b32bdb48a84c
MD5 49df6489fbe48691cf6a1db3b9232aff
BLAKE2b-256 c8a3fa2b607f2b67696d786131746655aaedf8ff19739278bf6cda22aa0843a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verlex-0.20.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 06dd0cfcead0b82ecb78a7de90af9e66d27d654194103481e6855af4bb3a7c38
MD5 56afa848b6b4f16c66953dd08ab0804f
BLAKE2b-256 d810ba80477ffcd5b79b99e4af490ad00d5ed19af93bdcf47c0e382885d46d64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f93f1d1199eb44b29a79ef773ee992084c384736be4b09cc98ecf6ac966eeb53
MD5 bca53f54585f5f873aee64d0342a0fe1
BLAKE2b-256 38b9d507975b71dc3d60765a56a00b96e01df3862366863a420334ced1f17b28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 54ff5229f2a8925ddf36bb810cfb3b3c4ffb972cfea3dc9d1f206aa67cf28ec6
MD5 badb896ced64837186039264085c9875
BLAKE2b-256 88dbf985ff5bc97623bd3cc36404073d8a16a8a13e9d48db51f393a2f02c0bfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bf74cc59992e629a22ccce7947f6079d2320990803f84a1e2c7dfe1a8e42cf1
MD5 07306a3ccd00dd55751f70aa3b00c0b1
BLAKE2b-256 709d81b5b7c10c3be0e1282af3beb0073677cf3d939c6d3df5994f66d08c61c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a3daefec79ca150b5f3b3dd7fb718e7f43b18c8b4a38c76bb7f4101b18a072b7
MD5 b1e48ae59c58f0db16d867b0d9be8237
BLAKE2b-256 1364e62ff3d4bb3d1a06d7511e37216803877e626be3926268a9432dcbfce7ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for verlex-0.20.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 31235e3851722f37bc673a56465f34adc8a67bcf9f93c38a2a4a51944bccf483
MD5 704cdc817d34d0aef857aff73ceb4950
BLAKE2b-256 741907e5518d7d93d08f39a5fe7b6000c5e7d1d960517272c745bf16536a8937

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

This release

0.20.2 This release

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