Skip to main content

Solvor all your optimization needs.

Project description

Build Status Docs codecov License: Apache 2.0 PyPI Downloads Python 3.12 | 3.13 | 3.14

solvOR

Solvor all your optimization needs.

What's in the box?

Category Solvors Use Case
Linear/Integer solve_lp, solve_lp_interior, solve_milp, solve_cg, solve_bp Resource allocation, cutting stock
Constraint solve_sat, Model Sudoku, puzzles, and that one config problem that's been bugging you
Combinatorial solve_knapsack, solve_bin_pack, solve_job_shop, solve_vrptw Packing, scheduling, routing
Local Search anneal, tabu_search, lns, alns TSP, combinatorial optimization
Population evolve, differential_evolution, particle_swarm Global search, nature-inspired
Gradient gradient_descent, momentum, rmsprop, adam ML, curve fitting
Quasi-Newton bfgs, lbfgs Fast convergence, smooth functions
Derivative-Free nelder_mead, powell, bayesian_opt Black-box, expensive functions
Pathfinding bfs, dfs, dijkstra, astar, astar_grid, bellman_ford, floyd_warshall Shortest paths, graph traversal
Graph max_flow, min_cost_flow, kruskal, prim, topological_sort, strongly_connected_components, pagerank, louvain, articulation_points, bridges, kcore_decomposition Flow, MST, dependency, centrality, community detection
Assignment solve_assignment, solve_hungarian, network_simplex Matching, min-cost flow
Exact Cover solve_exact_cover N-Queens, tiling puzzles
Utilities FenwickTree, UnionFind Data structures for algorithms

Quickstart

uv add solvor
from solvor import solve_lp, solve_tsp, dijkstra, solve_hungarian

# Linear Programming
result = solve_lp(c=[1, 2], A=[[1, 1], [2, 1]], b=[4, 5])
print(result.solution)  # optimal x

# TSP with tabu search
distances = [[0, 10, 15], [10, 0, 20], [15, 20, 0]]
result = solve_tsp(distances)
print(result.solution)  # best tour found

# Shortest path
graph = {'A': [('B', 1), ('C', 4)], 'B': [('C', 2)], 'C': []}
result = dijkstra('A', 'C', lambda n: graph.get(n, []))
print(result.solution)  # ['A', 'B', 'C']

# Assignment
costs = [[10, 5], [3, 9]]
result = solve_hungarian(costs)
print(result.solution)  # [1, 0] - row 0 gets col 1, row 1 gets col 0

Solvors

Linear & Integer Programming

solve_lp

For resource allocation, blending, production planning. Finds the exact optimum for linear objectives with linear constraints.

# minimize 2x + 3y subject to x + y >= 4, x <= 3
result = solve_lp(
    c=[2, 3],
    A=[[-1, -1], [1, 0]],  # constraints as Ax <= b
    b=[-4, 3]
)

solve_milp

When some variables must be integers. Diet problems, scheduling with discrete slots, set covering.

# same as above, but x must be integer
result = solve_milp(c=[2, 3], A=[[-1, -1], [1, 0]], b=[-4, 3], integers=[0])

solve_cg

Column generation for problems with exponentially many variables. Cutting stock, bin packing, vehicle routing, crew scheduling.

# Cutting stock: minimize rolls to cut required pieces
result = solve_cg(
    demands=[97, 610, 395, 211],
    roll_width=100,
    piece_sizes=[45, 36, 31, 14],
)
print(result.objective)  # 454 rolls

solve_bp

Branch-and-price for optimal integer solutions. Combines column generation with branch-and-bound for proven optimality.

# Cutting stock with guaranteed integer optimality
result = solve_bp(
    demands=[97, 610, 395, 211],
    roll_width=100,
    piece_sizes=[45, 36, 31, 14],
)
print(result.objective)  # Integer optimal
Constraint Programming

solve_sat

For "is this configuration valid?" problems. Dependencies, exclusions, implications - anything that boils down to boolean constraints.

# (x1 OR x2) AND (NOT x1 OR x3) AND (NOT x2 OR NOT x3)
result = solve_sat([[1, 2], [-1, 3], [-2, -3]])
print(result.solution)  # {1: True, 2: False, 3: True}

Model

Constraint programming for puzzles and scheduling with "all different", arithmetic, and logical constraints. Sudoku, N-Queens, timetabling.

m = Model()
cells = [[m.int_var(1, 9, f'c{i}{j}') for j in range(9)] for i in range(9)]

# All different in each row
for row in cells:
    m.add(m.all_different(row))

result = m.solve()
Metaheuristics

anneal

Simulated annealing, sometimes you have to go downhill to find a higher peak.

result = anneal(
    initial=initial_solution,
    objective_fn=cost_function,
    neighbors=random_neighbor,
    temperature=1000,
    cooling=0.9995
)

tabu_search

Greedy local search with a "don't go back there" list. Simple but surprisingly effective.

result = tabu_search(
    initial=initial_solution,
    objective_fn=cost_function,
    neighbors=get_neighbors,  # returns [(move, solution), ...]
    cooldown=10
)

lns / alns

Large Neighborhood Search, destroy part of your solution and rebuild it better. ALNS learns which operators work best.

result = lns(initial, objective_fn, destroy_ops, repair_ops, max_iter=1000)
result = alns(initial, objective_fn, destroy_ops, repair_ops, max_iter=1000)  # adaptive

evolve / differential_evolution / particle_swarm

Population-based global search. Let a swarm of candidates explore for you. DE and PSO work on continuous spaces.

result = evolve(objective_fn=fitness, population=pop, crossover=cx, mutate=mut)
result = differential_evolution(objective_fn, bounds=[(0, 10)] * n, population_size=50)
result = particle_swarm(objective_fn, bounds=[(0, 10)] * n, n_particles=30)
Continuous Optimization

Gradient-Based

gradient_descent, momentum, rmsprop, adam - follow the slope. Adam adapts learning rates per parameter.

def grad_fn(x):
    return [2 * x[0], 2 * x[1]]  # gradient of x^2 + y^2

result = adam(grad_fn, x0=[5.0, 5.0])

Quasi-Newton

bfgs, lbfgs - approximate Hessian for faster convergence. L-BFGS uses limited memory.

result = bfgs(objective_fn, grad_fn, x0=[5.0, 5.0])
result = lbfgs(objective_fn, grad_fn, x0=[5.0, 5.0], memory=10)

Derivative-Free

nelder_mead, powell - no gradients needed. Good for noisy, non-smooth, or "I have no idea what this function looks like" situations.

result = nelder_mead(objective_fn, x0=[5.0, 5.0])
result = powell(objective_fn, x0=[5.0, 5.0])

bayesian_opt

When each evaluation is expensive. Builds a surrogate model to sample intelligently. Perfect for hyperparameter tuning or when your simulation takes 10 minutes per run.

result = bayesian_opt(expensive_fn, bounds=[(0, 1), (0, 1)], max_iter=30)
Pathfinding

bfs / dfs

Unweighted graph traversal. BFS finds shortest paths (fewest edges), DFS explores depth-first. Both work with any state type and neighbor function.

# Find shortest path in a grid
def neighbors(pos):
    x, y = pos
    return [(x+1, y), (x-1, y), (x, y+1), (x, y-1)]

result = bfs(start=(0, 0), goal=(5, 5), neighbors=neighbors)
print(result.solution)  # path from start to goal

dijkstra

Weighted shortest paths. Classic algorithm for when edges have costs. Stops early when goal is found.

def neighbors(node):
    return graph[node]  # returns [(neighbor, cost), ...]

result = dijkstra(start='A', goal='Z', neighbors=neighbors)

astar / astar_grid

A* with heuristics. Faster than Dijkstra when you have a good distance estimate. astar_grid handles 2D grids with built-in heuristics.

# Grid pathfinding with obstacles
grid = [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 0, 0]]
result = astar_grid(grid, start=(0, 0), goal=(2, 3))

bellman_ford

Handles negative edge weights. Slower than Dijkstra but detects negative cycles, which is useful when costs can go negative.

result = bellman_ford(start=0, edges=[(0, 1, 5), (1, 2, -3), ...], n_nodes=4)

floyd_warshall

All-pairs shortest paths. O(n³) but gives you every shortest path at once. Worth it when you need the full picture.

result = floyd_warshall(n_nodes=4, edges=[(0, 1, 3), (1, 2, 1), ...])
# result.solution[i][j] = shortest distance from i to j
Network Flow & MST

max_flow

"How much can I push through this network?" Assigning workers to tasks, finding bottlenecks.

graph = {
    's': [('a', 10, 0), ('b', 5, 0)],
    'a': [('b', 15, 0), ('t', 10, 0)],
    'b': [('t', 10, 0)],
    't': []
}
result = max_flow(graph, 's', 't')

min_cost_flow / network_simplex

"What's the cheapest way to route X units?" Use min_cost_flow for simplicity, network_simplex for large instances.

# network_simplex for large min-cost flow
arcs = [(0, 1, 10, 2), (0, 2, 5, 3), (1, 2, 15, 1)]  # (from, to, cap, cost)
supplies = [10, 0, -10]  # positive = source, negative = sink
result = network_simplex(n_nodes=3, arcs=arcs, supplies=supplies)

kruskal / prim

Minimum spanning tree. Connect all nodes with minimum total edge weight. Kruskal sorts edges, Prim grows from a start node.

edges = [(0, 1, 4), (0, 2, 3), (1, 2, 2)]  # (u, v, weight)
result = kruskal(n_nodes=3, edges=edges)
# result.solution = [(1, 2, 2), (0, 2, 3)] - MST edges
Assignment

solve_assignment / solve_hungarian

Optimal one-to-one matching. solve_hungarian is O(n³), direct algorithm for assignment problems.

costs = [
    [10, 5, 13],
    [3, 9, 18],
    [10, 6, 12]
]
result = solve_hungarian(costs)
# result.solution[i] = column assigned to row i
# result.objective = total cost

# For maximization
result = solve_hungarian(costs, minimize=False)
Exact Cover

solve_exact_cover

For "place these pieces without overlap" problems. Sudoku, pentomino tiling, N-Queens, or any puzzle where you stare at a grid wondering why nothing fits.

# Tiling problem: cover all columns with non-overlapping rows
matrix = [
    [1, 1, 0, 0],  # row 0 covers columns 0, 1
    [0, 1, 1, 0],  # row 1 covers columns 1, 2
    [0, 0, 1, 1],  # row 2 covers columns 2, 3
    [1, 0, 0, 1],  # row 3 covers columns 0, 3
]
result = solve_exact_cover(matrix)
# result.solution = (0, 2) or (1, 3) - rows that cover all columns exactly once
Combinatorial Solvers

solve_knapsack

The classic "what fits in your bag" problem. Select items to maximize value within capacity.

values = [60, 100, 120]
weights = [10, 20, 30]
result = solve_knapsack(values, weights, capacity=50)
# result.solution = (1, 2) - indices of selected items

solve_bin_pack

Bin packing heuristics. Minimize bins needed for items.

items = [4, 8, 1, 4, 2, 1]
result = solve_bin_pack(items, bin_capacity=10)
# result.solution = (1, 0, 0, 1, 0, 0) - bin index for each item
# result.objective = 2 (number of bins)

solve_job_shop

Job shop scheduling. Minimize makespan for jobs on machines.

# jobs[i] = [(machine, duration), ...] - operations for job i
jobs = [[(0, 3), (1, 2)], [(1, 2), (0, 4)]]
result = solve_job_shop(jobs, n_machines=2)

solve_vrptw

Vehicle Routing with Time Windows. Serve customers with capacity and time constraints.

from solvor import Customer, solve_vrptw

customers = [
    Customer(1, 10, 10, demand=10, tw_start=0, tw_end=50, service_time=5),
    Customer(2, 20, 20, demand=10, tw_start=0, tw_end=50, service_time=5),
    Customer(3, 30, 30, demand=10, tw_start=0, tw_end=50, service_time=5),
]
result = solve_vrptw(customers, vehicles=2, vehicle_capacity=30)

Result Format

All solvors return a consistent Result dataclass:

Result(
    solution,     # best solution found
    objective,    # objective value
    iterations,   # solver iterations (pivots, generations, etc.)
    evaluations,  # function evaluations
    status,       # OPTIMAL, FEASIBLE, INFEASIBLE, UNBOUNDED, MAX_ITER
    error,        # error message if failed (None on success)
    solutions,    # multiple solutions when solution_limit > 1
)

When to use what?

Problem Solvor
Linear constraints, continuous solve_lp, solve_lp_interior
Linear constraints, integers solve_milp
Cutting stock, crew scheduling solve_cg, solve_bp
Boolean satisfiability solve_sat
Discrete vars, complex constraints Model
Knapsack, subset selection solve_knapsack
Bin packing solve_bin_pack
Job shop scheduling solve_job_shop
Vehicle routing solve_vrptw
Combinatorial, local search tabu_search, anneal
Combinatorial, destroy-repair lns, alns
Global search, continuous differential_evolution, particle_swarm
Global search, discrete evolve
Smooth, differentiable, fast bfgs, lbfgs
Smooth, differentiable, ML adam, rmsprop
Non-smooth, no gradients nelder_mead, powell
Expensive black-box bayesian_opt
Shortest path, unweighted bfs, dfs
Shortest path, weighted dijkstra, astar
Shortest path, negative weights bellman_ford
All-pairs shortest paths floyd_warshall
Minimum spanning tree kruskal, prim
Dependency ordering topological_sort
Circular dependencies strongly_connected_components
Node importance pagerank
Community detection louvain
Single points of failure articulation_points, bridges
Core vs periphery kcore_decomposition
Maximum flow max_flow
Min-cost flow min_cost_flow, network_simplex
Assignment, matching solve_hungarian, solve_assignment
Exact cover, tiling solve_exact_cover

Performance

Have your cake and eat it too. solvOR gives you both:

  • Readable Python - Every algorithm is implemented in clear, documented Python you can study and modify
  • Rust Performance - Optional drop-in Rust backends with 5-60x speedup for compute-heavy algorithms
from solvor import floyd_warshall

# "auto" (default) - Uses Rust if available, falls back to Python
result = floyd_warshall(n_nodes, edges)

# "python" - Force pure Python (for learning, debugging, or extending)
result = floyd_warshall(n_nodes, edges, backend="python")

Pre-built wheels include Rust extensions for Linux, macOS, and Windows. If Rust isn't available, solvOR falls back to Python automatically.

See the Performance docs for which algorithms have Rust backends and benchmarks.


Philosophy

  1. Readable first: every algorithm in clear Python you can actually understand
  2. Performance when needed: optional Rust backends, zero-copy where possible
  3. Consistent: same Result format, same minimize/maximize convention
  4. Practical: solves real problems (and AoC puzzles)

Documentation

Full docs at solvOR.ai: getting started, algorithm reference, cookbook with worked examples, and troubleshooting.


Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

Apache 2.0 License, free for personal and commercial use.

Background of solvOR

A little bit of history.. I learned about solvers back in 2011, working with some great minds at a startup in Paris. I started writing python myself around 2018, always as a hobby, and in 2024 I got back into solvers for an energy management system (EMS) and wrote a few tools (simplex, milp, genetic) myself mainly to improve my understanding.

Over time this toolbox got larger and larger, so I decided to publish it on GitHub so others can use it and improve it even further. Since I am learning Rust, I will eventually replace some performance critical operations with a high performance Rust implementation. But since I work on this project (and others) in my spare time, what and when is uncertain. The name solvOR is a mix of solver(s) and OR (Operations Research).

Disclaimer; I am not a professional software engineer, so there are probably some obvious improvements possible. If so let me know, or create a PR!

Project details


Download files

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

Source Distribution

solvor-0.6.2.tar.gz (114.9 kB view details)

Uploaded Source

Built Distributions

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

solvor-0.6.2-cp314-cp314t-musllinux_1_2_x86_64.whl (617.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

solvor-0.6.2-cp314-cp314t-musllinux_1_2_aarch64.whl (578.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

solvor-0.6.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (402.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

solvor-0.6.2-cp314-cp314-win_amd64.whl (282.9 kB view details)

Uploaded CPython 3.14Windows x86-64

solvor-0.6.2-cp314-cp314-musllinux_1_2_x86_64.whl (617.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

solvor-0.6.2-cp314-cp314-musllinux_1_2_aarch64.whl (578.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

solvor-0.6.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (406.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

solvor-0.6.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (402.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

solvor-0.6.2-cp314-cp314-macosx_11_0_arm64.whl (376.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

solvor-0.6.2-cp314-cp314-macosx_10_12_x86_64.whl (387.8 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

solvor-0.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl (618.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

solvor-0.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl (578.9 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

solvor-0.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (402.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

solvor-0.6.2-cp313-cp313-win_amd64.whl (283.0 kB view details)

Uploaded CPython 3.13Windows x86-64

solvor-0.6.2-cp313-cp313-musllinux_1_2_x86_64.whl (617.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

solvor-0.6.2-cp313-cp313-musllinux_1_2_aarch64.whl (578.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

solvor-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (406.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

solvor-0.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (402.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

solvor-0.6.2-cp313-cp313-macosx_11_0_arm64.whl (376.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

solvor-0.6.2-cp313-cp313-macosx_10_12_x86_64.whl (387.8 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

solvor-0.6.2-cp312-cp312-win_amd64.whl (283.7 kB view details)

Uploaded CPython 3.12Windows x86-64

solvor-0.6.2-cp312-cp312-musllinux_1_2_x86_64.whl (618.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

solvor-0.6.2-cp312-cp312-musllinux_1_2_aarch64.whl (579.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

solvor-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (407.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

solvor-0.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (402.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

solvor-0.6.2-cp312-cp312-macosx_11_0_arm64.whl (376.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

solvor-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl (388.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

File details

Details for the file solvor-0.6.2.tar.gz.

File metadata

  • Download URL: solvor-0.6.2.tar.gz
  • Upload date:
  • Size: 114.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for solvor-0.6.2.tar.gz
Algorithm Hash digest
SHA256 fe9cea887b0d2abf107d332082b97b061289292bc8b1f8f7d7c086dac3a9a7ae
MD5 c3757892808a99556d613a8c4c616793
BLAKE2b-256 f8213ad56e6cc20ab886c48aaff3cb07153e1cc04bb0859947162b46847e71eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2.tar.gz:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e0a2c731edcdcc1c6c00b97f7163970b8b56b33a7b6e3eba0065768e2263cf25
MD5 bafd70006084eb186b3727576ca1b313
BLAKE2b-256 f820854729b7bc61293984e681970f9b1a6a394502d4b6519d773439c513ea21

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 294090e6a065ddb46c2c1b517995354fa3b764af93e9bbea4f717bcbdd36c3e9
MD5 7306b1ef00b940734f7e07795af5c1e6
BLAKE2b-256 cf6877d5485646f48be76d73104dc0f43c184f9735b9c3ea4d3aea2b36b83cf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 88d20c6745a240a296d7dbe30075bc1a8a7c2c936cdc6acc4dd3d307f07d204c
MD5 8743d48f22ea6394586a4742cbeb89b2
BLAKE2b-256 ecbcbe6e19acdb36bd4b5ce75b5657184dc98e057315016c6cc6bb5341e7fd4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: solvor-0.6.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 282.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for solvor-0.6.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7b743d3069a2886f4e049ba2143ff76888bf2b2721516a9064d2ae1e35c652dd
MD5 e587559fcadabbf42f70e0c43f1a2e6a
BLAKE2b-256 62f0fb599debfc9d7f016cbcc2c5d7e005fce368e7669decf4ad1567fea34c79

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea50f324f332fc0b41ef98308bc92bc4316f6f6b37ea93ad1d121d64ad11fa5d
MD5 2c62af56d29887371e6bbb9c6e44ee6a
BLAKE2b-256 d5450acab7116d68bd3743b3513dadd02ca144418ca8dd2c7c7f5e157f09cd77

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6787be8d70af117cc510bc65ffe88fb8660735731d5e7d4b92b921cfaa79a52
MD5 4132fd79017ddff8f6b9b18e92d362db
BLAKE2b-256 d5a5e8176f9fce0c360ea31cb5e4034e2a992e0db9b606603c8bd99c0129f502

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 392a7c574ce192663e694471beb19b72c9da810aa667931a1caffa802a54363e
MD5 2f5f4adec83ffce71cdc222c44deb334
BLAKE2b-256 9640fedc5458fbcb52d35c3e0da4af3765e0f6e0b2d3bedbb784441abdbd5c32

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2c66826db9f9a2583f93ef2533d42bff61f74f834a69343019528bb8c163684
MD5 336d95d0bc59e6a8cfba03fc277f8360
BLAKE2b-256 f8e496371dc9cc466fe2d69be5c58cd516e1fe6c6fdf978d0e36ac068cf01f11

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 932b1b9325e3e9f84056bd51db37cf924cf55c9c397950d7d920654055909aaf
MD5 468a7f39d0b896ce5323407816e23049
BLAKE2b-256 7a5d7a96a98c5c6142d09eb11edea0ce5c4a4ae87dd0845f58b2b52cd6c64098

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f7db5804466d6133b3d70f25515bd6b94b622a10a9b3b63571f94a817fa780f8
MD5 9f88ab6d0146091c3f9a9728dc5a98a5
BLAKE2b-256 3ced6d7249be8be538539cfc27ffc7a6950371d7fc32b2e0180c9303ce46540c

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cd73697cf0ca5e55b153f6034c272f170c754399d895efa11879c14fa43a1169
MD5 ee11389b1c28fa2038ab43bea960c95a
BLAKE2b-256 2fca1994eea18f64408c665a85aee533cd74e6fff6e3192fd233d6f85f97f0a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f656defa578fdb1beaa139c6d00c2c97c044f9de90170be6bf4df7c1efd2d0a0
MD5 1168f84a9d24449d4e9b8f95a2bd904a
BLAKE2b-256 904f7cb42d83820dd041414178ce94a8e9558d64d9738ccaec542cf187d705ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 759a234604d2e86b1ba96a40c75bf5102527a02a6fbc23b7ba67e65189869519
MD5 aaa7092b8bc273e446a5f4336e3104ec
BLAKE2b-256 a2b57f4917ea994837c24de787364fdfceff5ea6df130b1a5a17c56cc4b85a53

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: solvor-0.6.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 283.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for solvor-0.6.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 59a35c257ee59877ef163e70e69878243373e40876985d2ea13612f5cc7c4f04
MD5 5494a7447cc586801a402f8c19cb5558
BLAKE2b-256 a384b020c1ee10213ea07cab157b5da81ca46d6eaade6d7de62479fb3ef327ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c0fe39b9191f2570056132a6db3776fee594d1483bac3f30b2386e8a989a9027
MD5 c2a77094a252695a3d18c4843a46d0e6
BLAKE2b-256 0f257ae3cf34cf403563787a0b27bb91fe31d5e49877a29604da89d7e3561de7

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d379c3ba16570bc1e441c5ba0a4daa820af69c80b1859e8e639a19d8827eba83
MD5 4845557fb09095b5de31eb0eff30b21f
BLAKE2b-256 f66ee78223ad8f7bd181b04610109318ae80f35bd940bc2fecd567ff185aba33

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2536296281feaadb3cef0ef9c791cae64efcd1d6e209a7050f7eaa92719f854
MD5 33d2f4fb52d6470b821c8de08fc91b2a
BLAKE2b-256 8785386402145b901c3f379634333a5362f50c58204c63247dc6864148f879b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6cbe4a1c4b378792d88661e863435e9e6c9060b82bf98a56e74d51b37948018d
MD5 21f50e3856b5b73d392bd4eaf88e91c0
BLAKE2b-256 1047ba55f67d9b82ac2c196d17939d8a35defd6dc45ebb1935bef0014cd3f1a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51864d66d74cf69d5cae664ccde995d9a04d87a3fc75f58375ae686bdd3d1113
MD5 23c4eb0c061502293cca1fba47abd5b0
BLAKE2b-256 dd0f03167ce22702408ad0683b565f4531c0142b505e263a31297cc94f3a8fb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2bd832031276dd286d5959a84c16f8d6e02c756b8cfa20a20ad85b34216bee7e
MD5 8be01c3dccb892796c883b30c67abff5
BLAKE2b-256 55fcaf3c6ee75e53aca32c1aaeda213e108130cf16d2270b1d5055c1d904f77a

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: solvor-0.6.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 283.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for solvor-0.6.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8e58ad9e45e6ecd9566850eac9bca9ec35a4089df58128d365e3f6a475c5da55
MD5 b92956d3286a7573a95112e8eea96e2e
BLAKE2b-256 e2aadc33cec33e69fd58c11088bdc62e05ef7a9e6284e778a380d8ca38a84b83

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8282904dca60b416293bcac5f8bb85fd40bb41462e24a86b58decba7136553bb
MD5 4be7f12741b7ae487e7aa6260bce0d56
BLAKE2b-256 315087c092d5b736292cd7e764c4d49f5279a7598c777c6a07484a9afadb21a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a49f7b5237899245ffc1da149a76469c6010cc0acfd6e147a79b74099951d1fe
MD5 8e62b15d939584e41cfbe80622c92ecc
BLAKE2b-256 b5826828d37031c7af4b12515cf5e70e40dfde916d78c13b8f9baecd58244478

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d38886e58a9f3546c4f67bbeaafb7e9412ecb17a47d0800d912810d70f126cd
MD5 ab237f9a3900634b6c56b49c58808b79
BLAKE2b-256 aa78e17b3a1f7f79a1234839b6402712850ac6ad8b79093eefc02e750d03859b

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e2556d7affdbf28f4149aa7d149a997087a726637f71393f5a328cfebed23994
MD5 d035810a40be8670186d44ca1ffa227f
BLAKE2b-256 4c435ea63ad24ec692881f1f6a3dd1c3561f409af3235eb94de3e77b9fb35800

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d117fa779ef3e6310d6256b4396f024e99a048e27c196ec3ce9e5021d240fdbe
MD5 d7663f13765e6570fd29ae2eace35764
BLAKE2b-256 fa6decc7cfb3827daa3c1ee1347442e78654505c45e6b4d523f3094bc5859991

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file solvor-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for solvor-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cdbf06930ee8a7f085db5d8eb0e26e7f8843b9d8ad041a099469650ae1531625
MD5 dd884257540bd01c4e956ba1a6b3f838
BLAKE2b-256 9b875dcdb7be3c4b8fb0f3bc303b95ec361f66899c72862648daced2b605669a

See more details on using hashes here.

Provenance

The following attestation bundles were made for solvor-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on StevenBtw/solvOR

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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