AC/DC power flow solver for large-scale transmission networks
Project description
surge-py
Python bindings for Surge.
surge-py provides the curated Python interface to Surge, a Rust-native power systems analysis engine. The package surface is intentionally small at the root and uses explicit namespaces for specialist workflows such as transfer studies, prepared contingency studies, batch runs, and advanced power-flow methods.
Installation
# Distribution name declared in pyproject metadata
pip install surge-py
# From source (requires Rust toolchain + maturin)
cd src/surge-py
pip install maturin
maturin develop --release
When surge-py is built with COPT_HOME pointing at a COPT 8.x install, the
wheel bundles the Surge COPT NLP shim and the surge package auto-configures
SURGE_COPT_NLP_SHIM_PATH at import time. End users still need a working COPT
runtime installation and license to run nlp_solver="copt", but they do not
need to build a separate shim by hand.
Source builds keep optional commercial backends runtime-loaded. If you want the build to fail unless the packaged COPT NLP shim is bundled, require it explicitly:
COPT_HOME=/opt/copt80 SURGE_PY_REQUIRE_COPT_NLP_SHIM=1 maturin develop --release
System dependencies (build from source)
- Rust stable toolchain
libsuitesparse-dev(KLU sparse solver)libhighs-dev(HiGHS LP solver for OPF — install via system package manager)coinor-libipopt-dev(optional, open-source AC-OPF backend — install via system package manager)- COPT 8.x install + license (optional, commercial AC-OPF backend)
Note:
pip install highspyandpip install cyipoptdo not provide the C shared libraries Surge needs. Both HiGHS and Ipopt must be installed via your system package manager (brew install highs ipopt/apt install libhighs-dev coinor-libipopt-dev).
Quick Start
import surge
# Load a MATPOWER/PSS-E/CIM case
net = surge.load("case118.m")
print(f"{net.n_buses} buses, {net.n_branches} branches")
# AC power flow (Newton-Raphson)
sol = surge.solve_ac_pf(net)
print(f"Converged: {sol.converged}, max mismatch: {sol.max_mismatch:.2e}")
# Results as pandas DataFrame when pandas is installed
df = sol.to_dataframe()
print(df[["bus_id", "vm_pu", "va_deg"]].head())
# DC optimal power flow
opf = surge.solve_dc_opf(net)
print(f"Total cost: ${opf.total_cost:.2f}/hr")
print(f"LMPs: {opf.lmp}") # numpy array
# N-1 contingency analysis
ca = surge.analyze_n1_branch(net)
print(f"{ca.n_with_violations} contingencies with violations")
to_dataframe() returns a pandas DataFrame when pandas is installed and a plain
column dictionary otherwise.
The repository metadata declares the distribution name surge-py and the import module surge. Publication status is a release-process question, not an unresolved naming question.
Pandas Network Construction
For pandas-native workflows, build a network directly from DataFrames:
import pandas as pd
import surge
buses = pd.DataFrame(
[
{"number": 1, "type": "Slack", "base_kv": 230.0, "name": "SWING"},
{"number": 2, "type": "PV", "base_kv": 230.0, "name": "GEN"},
{"number": 3, "type": "PQ", "base_kv": 230.0, "name": "LOAD", "pd_mw": 90.0, "qd_mvar": 30.0},
]
)
branches = pd.DataFrame(
[
{"from_bus": 1, "to_bus": 2, "r": 0.01, "x": 0.10, "rate_a": 250.0},
{"from_bus": 2, "to_bus": 3, "r": 0.01, "x": 0.08, "rate_a": 250.0},
{"from_bus": 1, "to_bus": 3, "r": 0.02, "x": 0.12, "rate_a": 250.0},
]
)
generators = pd.DataFrame(
[
{"bus": 1, "pg": 100.0, "pmax": 150.0, "qmax": 80.0, "qmin": -80.0},
{"bus": 2, "pg": 40.0, "pmax": 80.0, "vs": 1.02},
]
)
net = surge.construction.from_dataframes(buses, branches, generators, name="pandas-demo")
sol = surge.solve_ac_pf(net)
print(sol.converged)
surge.construction.from_dataframes(...) follows a MATPOWER-like schema:
buses: requirednumber,base_kv; optionaltype,name,pd_mw,qd_mvar,vm_pu,va_degbranches: requiredfrom_bus,to_bus,r,x; optionalb,rate_a,tap,shift,circuitgenerators: requiredbus,pg; optionalpmax,pmin,qmax,qmin,vs,machine_id
This helper is intentionally narrow for 0.1. It does not ingest separate load
tables, shunts, HVDC, topology assets, or market objects. See
docs/tutorials/09-pandas-construction.md for the full schema and error
semantics.
Subsystems
surge.subsystem.Subsystem gives you a named, reusable bus-set view over a
network for area/zone, voltage-level, or explicit-bus filtering:
import surge
net = surge.case118()
extra_high = surge.subsystem.Subsystem(net, name="ehv", kv_min=345.0)
area_one_load = surge.subsystem.Subsystem(net, areas=[1], bus_type="PQ")
print(extra_high.bus_numbers[:5])
print(area_one_load.total_load_mw)
print(area_one_load.tie_branches[:3])
Subsystem filters intersect. branches includes only lines whose endpoints are
both inside the bus set, while tie_branches includes exactly one-in / one-out
connections. See docs/tutorials/10-subsystems.md for examples.
Prepared DC Studies
For repeated DC power flow and sensitivity work on one network, prepare the DC study once and reuse it. The prepared study supports both single-island and multi-island AC networks:
import surge
net = surge.load("case118.m")
dc = surge.dc.prepare_study(net)
monitored = [
surge.dc.BranchKey(net.branches[i].from_bus, net.branches[i].to_bus, net.branches[i].circuit)
for i in (0, 3, 7)
]
outages = [
surge.dc.BranchKey(net.branches[i].from_bus, net.branches[i].to_bus, net.branches[i].circuit)
for i in (1, 5)
]
pf = dc.solve_pf()
ptdf = dc.compute_ptdf(
surge.dc.PtdfRequest(monitored_branches=monitored, bus_numbers=[1, 5, 10])
)
lodf = dc.compute_lodf(
surge.dc.LodfRequest(monitored_branches=monitored, outage_branches=outages)
)
workflow = dc.run_analysis(
surge.dc.DcAnalysisRequest(
monitored_branches=monitored,
lodf_outage_branches=outages,
n2_outage_pairs=[
(monitored[0], monitored[1]),
(monitored[1], monitored[0]),
],
)
)
Prepared Transfer Studies
For repeated transfer work on one network, prepare the transfer study once and reuse it across ATC, AFC, and multi-interface runs:
import surge
net = surge.load("case118.m")
study = surge.transfer.prepare_transfer_study(net)
path = surge.transfer.TransferPath("north_to_south", [8], [1])
atc = study.compute_nerc_atc(
path,
surge.transfer.AtcOptions(
monitored_branches=list(range(net.n_branches)),
contingency_branches=list(range(net.n_branches)),
),
)
afc = study.compute_afc(
path,
[surge.transfer.Flowgate("fg0", 10, 500.0)],
)
multi = study.compute_multi_transfer(
[
surge.transfer.TransferPath("north", [8], [1]),
surge.transfer.TransferPath("west", [10], [2]),
],
weights=[1.0, 1.5],
)
For repeated contingency screening on one network, build a study object once,
run it on demand, and reuse the latest analysis for follow-on corrective
redispatch. The same ContingencyStudy surface is used for branch N-1,
generator N-1, and branch N-2:
import surge
net = surge.load("case118.m")
n1 = surge.contingency.n1_branch_study(net, surge.ContingencyOptions(screening="lodf"))
gen_n1 = surge.contingency.n1_generator_study(net, surge.ContingencyOptions(screening="lodf"))
n2 = surge.contingency.n2_branch_study(net, surge.ContingencyOptions(screening="lodf", top_k=100))
analysis = n1.analyze()
scrd = n1.solve_corrective_dispatch()
Supported Entry Points
| Solver | Function | Description |
|---|---|---|
| Newton-Raphson | solve_ac_pf() |
Full AC power flow (KLU sparse) |
| Fast Decoupled | surge.powerflow.solve_fdpf() |
BX/XB decoupled AC power flow |
| DC Power Flow | solve_dc_pf() |
Linear B-theta approximation |
| HVDC Power Flow | solve_hvdc() |
Coupled AC/DC HVDC power flow with automatic topology-aware method selection |
| DC-OPF | solve_dc_opf() |
Optimal dispatch via LP (HiGHS) |
| AC-OPF | solve_ac_opf() |
Optimal dispatch via NLP (auto-detected runtime backend; COPT first, then Ipopt) |
| SCOPF | solve_scopf() |
Security-constrained OPF (DC/AC, preventive/corrective) |
| N-1 Contingency | analyze_n1_branch() |
Parallel contingency analysis |
| Contingency Study | surge.contingency.n1_branch_study() |
Reusable branch N-1 / generator N-1 / N-2 study object family |
| Prepared DC Study | surge.dc.prepare_study() |
Reusable DC power flow + sensitivity study object |
| DC Analysis Workflow | surge.dc.run_analysis() |
Canonical one-call DC flow + PTDF/LODF/N-2 sensitivities |
| PTDF/LODF | surge.dc.compute_ptdf() / surge.dc.compute_lodf() |
Individual sensitivity matrix entry points |
| Prepared Transfer Study | surge.transfer.prepare_transfer_study() |
Reusable ATC / AFC / multi-transfer study object |
| NERC ATC | surge.transfer.compute_nerc_atc() |
Canonical transfer capability entry point |
| GSF | surge.transfer.compute_gsf() |
Generation shift factors |
| Voltage Stress | surge.contingency.compute_voltage_stress() |
Base-case exact L-index and local Q-V proxy screening |
DC power flow angle reporting can be controlled independently of slack distribution. For example:
dc = surge.solve_dc_pf(
net,
surge.DcPfOptions(
participation_factors={101: 0.7, 205: 0.3},
angle_reference="distributed_load",
),
)
This changes only the reported bus-angle reference frame; it does not change branch flows or how the slack mismatch is shared.
The Python package intentionally does not expose unfinished or out-of-scope study surfaces such as continuation PF, planning/compliance helpers, protection convenience layers, dynamics/ride-through workflows, state estimation, fault analysis, arc flash, GIC, or distribution solves until they have a supported package contract.
Supported File Formats
| Format | Read | Write |
|---|---|---|
| MATPOWER (.m) | Yes | Yes |
| PSS/E RAW (.raw) | Yes | Yes |
| PSS/E DYR (.dyr) | Yes | Yes |
| IEEE CDF | Yes | — |
| CGMES/CIM XML | Yes | Yes, via surge.io.cgmes.save(...) |
| UCTE-DEF | Yes | Yes |
| JSON | Yes | Yes |
License
PolyForm Noncommercial 1.0.0 — free for non-commercial use. Commercial use requires a license from Amptimal.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file surge_py-0.1.9-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
818bac76c90a8388a4401b89286f052e938a5b13c14bf5a55743daae6e491743
|
|
| MD5 |
8a2ff4b77262ff21342f2f9d1f054b18
|
|
| BLAKE2b-256 |
892a898bf0ba03fc930fe85893bfc6108b3986a2258d807eed2a7ba5fb41d6f5
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp314-cp314-win_amd64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp314-cp314-win_amd64.whl -
Subject digest:
818bac76c90a8388a4401b89286f052e938a5b13c14bf5a55743daae6e491743 - Sigstore transparency entry: 1438156966
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 10.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b49ebed083c6e2e0e5b8b084d9c3ac00a504db67a695b27e3dbaad60f169b8ad
|
|
| MD5 |
fd67f777a8da21b8365c63ac0a03d7cb
|
|
| BLAKE2b-256 |
9201f55b612cf71b0077827d3e968fd51cd7b3962043caad35655b3022168c20
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp314-cp314-manylinux_2_28_x86_64.whl -
Subject digest:
b49ebed083c6e2e0e5b8b084d9c3ac00a504db67a695b27e3dbaad60f169b8ad - Sigstore transparency entry: 1438157023
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp314-cp314-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp314-cp314-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55ee489c10c4732d20c5c489aa3f29ac1a599c422eb101ca0b1cf3ea573a4b2f
|
|
| MD5 |
c885cdbf02ebd1a228e554bb91e6f8e5
|
|
| BLAKE2b-256 |
19cb57301341985f42a64bfaebbdee0fd2ba884b4af40b37389ecdd03a270286
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp314-cp314-manylinux_2_28_aarch64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp314-cp314-manylinux_2_28_aarch64.whl -
Subject digest:
55ee489c10c4732d20c5c489aa3f29ac1a599c422eb101ca0b1cf3ea573a4b2f - Sigstore transparency entry: 1438157065
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f9842cb821d6e4e0034b877766450a08fccb97292c5e1801374bb5bfda34d63
|
|
| MD5 |
2ea1a91801b821425f5ae9eb9d8f6f6c
|
|
| BLAKE2b-256 |
f48ee48dfd1b515d929e8c895cef611975cb3190c05fc6b2f276d5c57baec738
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
5f9842cb821d6e4e0034b877766450a08fccb97292c5e1801374bb5bfda34d63 - Sigstore transparency entry: 1438156968
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e516be451917bea701ead71d8b5c11b71ac520043248aa2cc48ba4de79149505
|
|
| MD5 |
0864c3589743c4d2a58332d64b717359
|
|
| BLAKE2b-256 |
6eb81558eebf521ace720780cbadb385d6b576413c7862e3cfbb21256d854aa4
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp313-cp313-win_amd64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp313-cp313-win_amd64.whl -
Subject digest:
e516be451917bea701ead71d8b5c11b71ac520043248aa2cc48ba4de79149505 - Sigstore transparency entry: 1438157032
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 10.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73eb159e7f3c22b5c5441c451214449691724b46ede9dbe847ff5de8504568c2
|
|
| MD5 |
b6580db2c796ac8c893d902f4a3dc291
|
|
| BLAKE2b-256 |
57aa57d58741996515f843886c4f392bb15ab8444ccd817ac3045f6b5784beca
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
73eb159e7f3c22b5c5441c451214449691724b46ede9dbe847ff5de8504568c2 - Sigstore transparency entry: 1438156962
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp313-cp313-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp313-cp313-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
580cef118d553a8145737ef869211c089bf53a245b736b948b290912c52f0aea
|
|
| MD5 |
ddf20da536c4c071148f47f544fc1a72
|
|
| BLAKE2b-256 |
ddf8c60eb29c501e1da249d5ed76620396b751af5db90e8fc5d67ca1036f45b4
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp313-cp313-manylinux_2_28_aarch64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp313-cp313-manylinux_2_28_aarch64.whl -
Subject digest:
580cef118d553a8145737ef869211c089bf53a245b736b948b290912c52f0aea - Sigstore transparency entry: 1438157028
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e76bdf06629909740b7a9100c16e9fc522a179bd99d8254aac505d21a7b0aa78
|
|
| MD5 |
4f200b902b269671d5e2f76d08908546
|
|
| BLAKE2b-256 |
8c024440bcdafa68015b76ba9212bd231d1d788c6244d4206cc1b5b21a5b3bd4
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
e76bdf06629909740b7a9100c16e9fc522a179bd99d8254aac505d21a7b0aa78 - Sigstore transparency entry: 1438157046
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92a57c085f9c94153c94fa904edad78f7aec1ee4dcc5235b76258f6fdb2dcd5a
|
|
| MD5 |
69bc7d2f1f5b7c177955592b7ae113d1
|
|
| BLAKE2b-256 |
0eac9df9ebadaa72f05cf91c4c9db08bf5be382213052b69ecf3a581b57318c4
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp312-cp312-win_amd64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp312-cp312-win_amd64.whl -
Subject digest:
92a57c085f9c94153c94fa904edad78f7aec1ee4dcc5235b76258f6fdb2dcd5a - Sigstore transparency entry: 1438156972
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 10.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
204ec186c303f44d94bcba05390e819cec8969843f35c21c38827aac8ba04f6f
|
|
| MD5 |
7b1c9dc2d66554e9ea59153747f91d5c
|
|
| BLAKE2b-256 |
9d8085367a9bdc37cbf4dae14844c2dde13415155d98e155bde3cc425cef90d8
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
204ec186c303f44d94bcba05390e819cec8969843f35c21c38827aac8ba04f6f - Sigstore transparency entry: 1438156981
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp312-cp312-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp312-cp312-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67f60b9aae890a5f5ca81cae1b95aca9262c191a01631be4311942dd1280e05c
|
|
| MD5 |
6a7d5c2a385e5dd977a05f98a2eaa793
|
|
| BLAKE2b-256 |
0e01a4a64c098c0b9fba3ba980b8170f1ae90e25fc7c7f648c14c0d9de92a482
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp312-cp312-manylinux_2_28_aarch64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp312-cp312-manylinux_2_28_aarch64.whl -
Subject digest:
67f60b9aae890a5f5ca81cae1b95aca9262c191a01631be4311942dd1280e05c - Sigstore transparency entry: 1438157038
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type:
File details
Details for the file surge_py-0.1.9-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: surge_py-0.1.9-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89f3afb92def112874ad188306e661a5e5a8e7aad4412be1fbf4a4be30df959b
|
|
| MD5 |
195fa681ea4e14732ba5741fa8fcdb7a
|
|
| BLAKE2b-256 |
a4219b8c27256c9aefd117fd7916c89df5467c049fb3c58f9de866d5fad7b369
|
Provenance
The following attestation bundles were made for surge_py-0.1.9-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
build-wheels.yml on amptimal/surge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
surge_py-0.1.9-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
89f3afb92def112874ad188306e661a5e5a8e7aad4412be1fbf4a4be30df959b - Sigstore transparency entry: 1438157070
- Sigstore integration time:
-
Permalink:
amptimal/surge@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/amptimal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@7a14e1d0d3afc7ecfcddedf2d599dbb1365108fb -
Trigger Event:
push
-
Statement type: