COPP Python Bindings
Convex-Objective Path Parameterization
This directory contains the Python package for COPP. The open-source package is imported as copp_py, conventionally aliased with import copp_py as copp. It wraps the Rust solver core through PyO3 while presenting a NumPy-friendly interface for paths, robot constraints, solver options, and post-processing helpers.
COPP solves optimal path-parameterization problems. A geometric path
$$ q = q(s) $$
is converted into a time law
$$ s = s(t) $$
so the executed trajectory q(s(t)) satisfies velocity, acceleration, jerk, torque, or user-supplied constraints. The second-order solvers optimize the profile
$$ a(s) = \dot{s}^2 $$
and the third-order solvers optimize the pair
$$ a(s) = \dot{s}^2,\qquad b(s) = \ddot{s}. $$
The Python API follows the Rust crate layout: core modeling namespaces live at copp_py.path, copp_py.robot, copp_py.constraints, copp_py.objective, copp_py.interpolation, and copp_py.clarabel, while algorithms live under copp_py.solver.<algorithm>. Examples import copp_py as copp, so user code can use the short copp.Path and copp.solver.* aliases. This README focuses on installing, building, running examples, and using the Python interface. For the full project overview, benchmark tables, citation information, and collaboration contact details, see the COPP GitHub README.
Open-source / PRO note: this README documents the open-source Python package, imported as
copp_py. COPP PRO provides additional licensed solvers and support options; see the repository-level PRO section or contact hello@copp.pro if those capabilities are relevant to your application.
The Python bindings follow a deliberately small set of rules:
- import the package with
import copp_py as copp; - pass numerical data as NumPy-compatible arrays or ordinary Python sequences;
- use
float64data for predictable behavior and fewer copies; - build paths with
copp.Path, constraints withcopp.Robot, and solver inputs with solver-specificProblemclasses; - call algorithms through Rust-like solver modules such as
copp.solver.topp2_ra,copp.solver.copp2_socp, andcopp.solver.copp3_socp; - use
copp.interpolationfor profile-to-time conversion helpers.
API Availability
| Problem class | Python API |
|---|---|
| Core utilities | copp.core, root aliases for version, __version__, errors, and common enums |
| Path | copp.path.Path, interpolating and tolerance-fitted waypoint paths, evaluator paths, path derivative evaluation |
| Robot | copp.robot.Robot, station grids, sampled path derivatives, velocity/acceleration/jerk/torque limits, raw constraints, inverse-dynamics callbacks |
| TOPP2 | copp.solver.topp2_ra.solve, copp.solver.reach_set2.backward, copp.solver.reach_set2.bidirectional |
| COPP2 | copp.solver.copp2_socp.solve, copp.solver.copp2_socp.solve_expert |
| TOPP3 | copp.solver.topp3_lp.solve, copp.solver.topp3_lp.solve_expert, copp.solver.topp3_socp.solve, copp.solver.topp3_socp.solve_expert |
| COPP3 | copp.solver.copp3_socp.solve, copp.solver.copp3_socp.solve_expert |
| Objectives | copp.objective.Time, ThermalEnergy, TotalVariationTorque, Linear |
| Interpolation | copp.interpolation.s_to_t_topp2, t_to_s_topp2_uniform, s_to_t_topp3, t_to_s_topp3_uniform, sample-based variants |
Runnable examples are in examples. The Sphinx tutorials include those same files with literalinclude, so examples and documentation stay aligned.
Quick Start
Prerequisites
For the published Python package, you need:
- Python 3.9 or newer;
numpy;jaxfor examples that build differentiable paths withPath.from_jax.
Create and activate any Python environment you prefer before running the commands below. The commands intentionally avoid machine-specific activation scripts, user directories, or environment names.
Install from PyPI
Install COPP with pip:
python -m pip install -U pip
python -m pip install -U copp-py
For examples that use Path.from_jax, install JAX as well:
python -m pip install -U jax
After installation:
python -c "import copp_py as copp; print(copp.version())"
Build and Install from Source
Use the source build path when you are working from a checkout or changing the Rust/Python binding code. You also need Rust, Cargo, a native compiler toolchain suitable for Rust extension modules, and maturin.
Install the local build tools once:
python -m pip install -U maturin numpy jax
Run from the repository root:
cargo build --release --lib --features python
maturin develop --release --features python
The Cargo command makes the Rust/Python feature build explicit. maturin develop then builds and installs the Python extension module into the active Python environment. After the build:
python -c "import copp_py as copp; print(copp.version())"
Run Examples
Run examples from the repository root after installing the package:
python bindings/python/examples/topp2_ra.py
python bindings/python/examples/copp2_socp.py
python bindings/python/examples/topp3_lp.py
python bindings/python/examples/topp3_socp.py
python bindings/python/examples/copp3_socp.py
python bindings/python/examples/reach_set2.py
General Workflow
Most Python scripts follow the same shape:
- Build a path from waypoints or a Python evaluator object.
- Build a station grid
s. - Create a
copp.Robot. - Append stations and sample path derivatives into the robot.
- Add velocity, acceleration, jerk, torque, or raw constraints.
- Build a
Problemdescriptor for the chosen solver family. - Call a solver.
- Convert the returned path-domain profile into
t(s)ors(t)samples. - Evaluate the original path at
s(t)for downstream control or plotting.
For second-order problems, the solver output is usually an a profile sampled on the station grid. For third-order problems, the output is a Profile3rd object with a and b profiles.
Path evaluation helpers return a consistent PathDerivatives object. For
position-only evaluation, use the .q field:
out = path.evaluate_q(s)
q = out.q
Higher-order calls fill more fields on the same result type:
out = path.evaluate_up_to_2nd(s)
q = out.q
dq = out.dq
ddq = out.ddq
Minimal Program
import copp_py as copp
print("COPP version:", copp.version())
TOPP2-RA Example
This complete example builds a three-axis path with JAX, lets Path.from_jax provide the path derivatives, adds symmetric velocity and acceleration limits, solves TOPP2-RA, and converts the result into uniform time samples.
import numpy as np
import copp_py as copp
def main() -> None:
try:
import jax
import jax.numpy as jnp
except ImportError as exc:
raise SystemExit("Install JAX to run this example: python -m pip install jax") from exc
jax.config.update("jax_enable_x64", True)
dim = 3
n = 1001
dt = 1.0e-3
# 1) Define q(s). Path.from_jax differentiates it up to third order.
def q_fn(s):
freq = jnp.array([2.0 * jnp.pi, 3.0 * jnp.pi, 5.0 * jnp.pi], dtype=jnp.float64)
phase = jnp.array([0.0, 0.3, 0.7], dtype=jnp.float64)
return jnp.sin(freq * s + phase)
path = copp.Path.from_jax(q_fn, 0.0, 1.0)
s = np.linspace(0.0, 1.0, n, dtype=np.float64)
# 2) Build robot constraints, then apply symmetric velocity and acceleration limits in [-1, 1].
robot = copp.Robot(dim, capacity=n)
robot.append_s(s)
robot.set_q_from_path_2nd(path, 0, n)
upper = np.ones(dim, dtype=np.float64)
lower = -upper
robot.add_velocity_limits(upper, lower, start_idx_s=0, length=n)
robot.add_acceleration_limits(upper, lower, start_idx_s=0, length=n)
# 3) Solve TOPP2-RA with boundary values a(0) = 0 and a(1) = 0.
problem = copp.solver.topp2_ra.Problem(
robot.constraints,
idx_s_interval=(0, n - 1),
a_boundary=(0.0, 0.0),
)
options = copp.solver.topp2_ra.Options()
a_profile = copp.solver.topp2_ra.solve(problem, options)
# 4) Post-process TOPP2-RA results: a(s) -> t(s) -> s(t).
t_final, t_s = copp.interpolation.s_to_t_topp2(s, a_profile, 0.0)
s_t = copp.interpolation.t_to_s_topp2_uniform(
s,
a_profile,
t_s,
dt,
t0=0.0,
include_final=True,
)
# 5) Print the tutorial summary.
print("TOPP2-RA done.")
print(f"dim = {dim}, N = {n}")
print(f"t_final = {t_final:.6f} s")
print(f"a_profile.len() = {len(a_profile)}")
print(f"s(t) samples = {len(s_t)}")
if __name__ == "__main__":
main()
The same structure extends to COPP2 by replacing the TOPP2 problem with copp.solver.copp2_socp.Problem and an objective list, and to third-order solvers by using set_q_from_path_3rd, jerk constraints, copp.solver.topp3_socp.Problem or copp.solver.copp3_socp.Problem, and the TOPP3 interpolation helpers.
Solver Namespaces
copp.solver.topp2_ra and copp.solver.reach_set2
TOPP2 is the second-order time-optimal family. It optimizes a(s) under first- and second-order constraints. Use copp.solver.topp2_ra.solve for the reachability-analysis solver and copp.solver.reach_set2.backward / bidirectional when you need reachable-set bounds directly.
copp.solver.copp2_socp
COPP2 solves second-order convex-objective problems. Objectives are constructed through copp.objective, for example:
objectives = [
copp.objective.Time(1.0),
copp.objective.ThermalEnergy(0.1, np.ones(dim, dtype=np.float64)),
]
Use copp.solver.copp2_socp.solve for the Clarabel SOCP formulation. Use copp.solver.copp2_socp.solve_expert when application code needs solver status and diagnostics instead of only the accepted profile.
copp.solver.topp3_lp and copp.solver.topp3_socp
TOPP3 is the third-order time-optimal family. It uses the (a,b) state and supports jerk-aware constraints. Use copp.solver.topp3_lp.solve for the linear-objective approximation or copp.solver.topp3_socp.solve for the Clarabel conic formulation. A common pattern is to generate an initial a profile with TOPP2-RA, substitute it into the constraints, then solve the third-order problem with LP or SOCP. When refining with a previous third-order profile, pass b_linearization=profile.b together with profile.a; this adaptive linearization is recommended when a can approach zero.
copp.solver.copp3_socp
COPP3 combines third-order constraints with convex objectives. Use copp.solver.copp3_socp.solve for the Clarabel SOCP formulation. Third-order solvers return Profile3rd objects that can be post-processed with copp.interpolation.s_to_t_topp3 and copp.interpolation.t_to_s_topp3_uniform.
Data Conventions
Python inputs are accepted as NumPy-compatible array-like values. At the wrapper boundary, arrays are validated and converted into contiguous float64 buffers when needed. To reduce copies in hot loops, pass numpy.ndarray values with dtype=np.float64 and C-contiguous layout unless the function documents another layout.
Path-sampled matrices commonly use sample-major layout, where each row is one station and each column is one axis. The MatrixLayout enum and path helpers document the accepted alternatives.
Path.evaluate_q, Path.evaluate_up_to_2nd, and Path.evaluate_up_to_3rd
all return PathDerivatives. evaluate_q fills only out.q; derivative
fields are None. This keeps path evaluation calls structurally consistent
while making the requested derivative order explicit in the method name.
Waypoint paths come in two families: Path.from_waypoints_interpolating (alias
Path.from_waypoints) passes through every waypoint, while
Path.from_waypoints_fitting follows noisy or dense waypoints within per-axis
tolerances and reports its audited error bounds in path.smoothing_report.
Both constructor families are unstable; their names, signatures, and
configuration types may change as more algorithms are added.
Boundary values are expressed in path-domain variables:
a_boundary=(a_start, a_final)fixesa = ds/dt * ds/dt;b_boundary=(b_start, b_final)fixesb = d2s/dt2for third-order problems.
Error Handling
Python argument-format errors are reported as standard Python exceptions such as TypeError or ValueError. Errors returned by the Rust core are exposed as copp.CoppError and typed subclasses such as PathError and ConstraintError.
try:
a_profile = copp.solver.topp2_ra.solve(problem, options)
except copp.CoppError as exc:
print("COPP failed:", exc)
For Clarabel-based solvers, the simple solver functions return an accepted profile or raise an exception. Expert variants such as copp.solver.copp2_socp.solve_expert and copp.solver.topp3_socp.solve_expert expose solver status, residuals, and other diagnostic fields for applications that need status-aware behavior.
Documentation
The Python documentation is generated with Sphinx from:
bindings/python/docs/source/
Install documentation dependencies:
python -m pip install -U sphinx
Build the HTML documentation from the repository root:
python -m sphinx -E -b html bindings/python/docs/source bindings/python/docs/build/html
Open the generated entry page after the build:
bindings/python/docs/build/html/index.html
The documentation is organized as:
- Guide: quick start, mathematical concepts, solver selection, tutorials, and how-to pages;
- Reference: API pages generated from Python modules and PyO3 docstrings.
Guide pages use the same path-parameterization variables as the Rust docs, and tutorial pages include runnable files from bindings/python/examples.
Package Layout
bindings/python/
README.md
copp_py/
__init__.py # public package facade
core.py # shared enums, version, and errors
path.py # path constructors and evaluation
robot.py # robot sampling and high-level constraints
constraints.py # raw constraint buffer namespace
objective.py # objective constructors
interpolation.py # profile/time conversion helpers
clarabel.py # Clarabel options and diagnostics
solver/ # solver namespaces
topp2_ra.py
reach_set2.py
copp2_socp.py
topp3_lp.py
topp3_socp.py
copp3_socp.py
docs/
source/ # Sphinx source
build/html/ # generated HTML output
examples/ # runnable Python examples
The native extension module is built as copp_py._native.
Troubleshooting
import copp_py as copp Fails
Install the published package into the active Python environment:
python -m pip install -U copp-py
If you are working from a source checkout, build and install the local extension instead:
cargo build --release --lib --features python
maturin develop --release --features python
Then verify that the same interpreter can import the package:
python -c "import sys, copp; print(sys.executable); print(copp.version())"
Sphinx Cannot Import copp_py
Install the package first with python -m pip install -U copp-py, or build the local checkout with cargo build --release --lib --features python followed by maturin develop --release --features python. Then run the Sphinx command using the same Python interpreter.
Native Build Fails
For source builds, check that Rust, Cargo, Python headers, and the platform compiler toolchain are available. On Windows, install a Visual Studio C++ build toolchain compatible with your Python interpreter. On Linux and macOS, ensure that the usual compiler and linker tools are available on PATH.
Array Shape or Type Errors
Convert inputs explicitly before calling into COPP:
values = np.ascontiguousarray(values, dtype=np.float64)
For path samples, verify the intended matrix layout and station count. Most robot-building helpers expect lengths to match the station grid already stored in Robot.
Metadata
Release files for copp-py 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| copp_py-0.2.3.tar.gz | 737.1 kB | Details |
Built distributions (wheels)
Total release size: 30.5 MB
Release files / copp_py-0.2.3.tar.gz
| Download URL | copp_py-0.2.3.tar.gz |
|---|---|
| Size | 737.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7a48a576cff54a2f2da8e72b0baa1c9f15b638673104e6db55325bf49f88fd9
|
|
BLAKE2b-256 checksum How to use checksums |
36520723cfb75295cedab94845d7360339b73935690e4969e103474fb47d7d1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp314-cp314-win_amd64.whl
| Download URL | copp_py-0.2.3-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 978.6 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9e1cd2ba08c09eed38edeb84bcb4aa9a595efca6e8fdd50bffe6c59867728a7c
|
|
BLAKE2b-256 checksum How to use checksums |
8ac2ce536758143f571010ad7a9677fd4620408d4e1c9ecf3bc6bd8eee5d0b1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | copp_py-0.2.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ce36c2437234619b79e11f4eafad662e7d2f4ce33a9c801c6bde88cbab3752f2
|
|
BLAKE2b-256 checksum How to use checksums |
27f0c59b61aa7ba1511558ef25c5952ddfa82749424857dfc82611464f5c0b07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | copp_py-0.2.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 963.2 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
8ae5c7b9f2afde0f3dbe7c6f682a61d5caa3e1e3229eb92b9a075c804dab6333
|
|
BLAKE2b-256 checksum How to use checksums |
17a2e080f23dbf916fedd8d7708457c5cac0a7a133e252cf203123beb07969d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | copp_py-0.2.3-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 944.0 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7d635ae134eb72df93a86a9d0fa1441ccff954e1a4055aa67b56985aa19a3dd9
|
|
BLAKE2b-256 checksum How to use checksums |
c498e43a1fd9dd639e15cb89b4cb42631104ae134754e0be00d52ae71156930d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp314-cp314-macosx_10_13_x86_64.whl
| Download URL | copp_py-0.2.3-cp314-cp314-macosx_10_13_x86_64.whl |
|---|---|
| Size | 998.8 kB |
| Tags | CPython 3.14 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
813e42208d98200f7b15abcac684451f5f89f0ee48b7cd05711b33f18c9878f9
|
|
BLAKE2b-256 checksum How to use checksums |
38bb06cf35ad123fc762129a0b85987bb7bd25418b99e22c1c4907c112b696d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp313-cp313-win_amd64.whl
| Download URL | copp_py-0.2.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 973.4 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
52ae28055d34ef956a0c773f2857a04bbd4c285994b86e1b40f7558dbbb1837a
|
|
BLAKE2b-256 checksum How to use checksums |
9e2f2f6f1e5166b4b824d0d24c44a4ad560eea353bc74bf616ff556801e0907d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | copp_py-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
dd4b343a29fcd86a09e776b4f66e405343848b58fc617b0a01fdf604618653d2
|
|
BLAKE2b-256 checksum How to use checksums |
d00c1179aa2e3cc8597aba19576699eddc0db467397ebc8663d102a41b6a6ea9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | copp_py-0.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 958.3 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
5113f8c20a4f98247471f76613255d6fe60d4f2dc40c4149698e5a44123ea1cd
|
|
BLAKE2b-256 checksum How to use checksums |
93061a2f75cd1e54463b191becb6fa85198cf67942b2d70e30f2cf59afd77b7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | copp_py-0.2.3-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 944.2 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c7cae0f494254811a17ed06467801a954efc80112a19a98a71968756a0039a1e
|
|
BLAKE2b-256 checksum How to use checksums |
43c60b2511a58202c5fc3fece01a85e9e33c143ae9ab5e5ba6a7b7bb8b890423
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | copp_py-0.2.3-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 996.4 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
73e2c77d8be3928e97dc26ad9287ea7bc10fc548b4730be231e1ebb4e31ee85c
|
|
BLAKE2b-256 checksum How to use checksums |
079e7c98b8da7d6bb7f0f299b536f3e137da1249670d40daf76a4b1f795683c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp312-cp312-win_amd64.whl
| Download URL | copp_py-0.2.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 973.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
633eb52474ac18a703c5f466b30e4e1f385b791ecda93e4d830a00ae6d1252eb
|
|
BLAKE2b-256 checksum How to use checksums |
eca6a68e24e28d1a6c9e7be138687f414b6092a22100fce9c2fa7af0c0a3ebfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | copp_py-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d958495c76d488306a0101adc307a30c94f87f0711ad97fffbe048f7a747d836
|
|
BLAKE2b-256 checksum How to use checksums |
b6bd690898649e43a8b08a38c64b3f3e8c6db841c01e610748319e6967b4177b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | copp_py-0.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 958.7 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
1b3fe5a76d342cbfdca82f1a673e9729ec0389daed1a828a09b14cbfd998fd02
|
|
BLAKE2b-256 checksum How to use checksums |
f38946388e6c06592c0e4c3ed802704650bbf02f677db36c2493b57f34750ba8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | copp_py-0.2.3-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 944.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e97caa247fe46c2ecbd0170a9abee4951d88685f6b14312338de43d394b3fb8c
|
|
BLAKE2b-256 checksum How to use checksums |
ddc47b586ea0d979ebfd6fb78844b441f475d1036ba5152b7aeac775cb7c75ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | copp_py-0.2.3-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 998.0 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
f139f605881802df1b8bca96f7473f5090b1f7728a18aa2b6f25f161483ceb0e
|
|
BLAKE2b-256 checksum How to use checksums |
6e11f648083baa47559b880935e14ff5ad0252cb2326af4b0ecb9deb02710a8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp311-cp311-win_amd64.whl
| Download URL | copp_py-0.2.3-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 985.3 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
05f2b72b6490df674174ab2a862afd3ae12d4414f569f01ff618b90c1131ffa4
|
|
BLAKE2b-256 checksum How to use checksums |
e2b1fc8f207d8e8e3cb2cb64d86dfbed7570e04a5db003f70aaeabaec0dc15b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | copp_py-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
271b5176dd029a5152019764817890006a840b1ed8476cce1ceeb5be7c864d92
|
|
BLAKE2b-256 checksum How to use checksums |
eb5973fba85f3e43600f6da937a6ce02a83dc24fcef28dc5b8d8b4fc063f423d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | copp_py-0.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 971.3 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
cb5692cf0c1fd9a5d318b8812150e9080aab661a4dbfdd2fa85ea69cfa5ae66d
|
|
BLAKE2b-256 checksum How to use checksums |
fb9716b20f1c9fbab0cc98d200ab08159d8e62c97878b597f7b8b14eeb8c20b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | copp_py-0.2.3-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 958.6 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b80de9229bf1e0cc5b99747297f985b13eff1f022a2ee14cd1c05d9647ae3928
|
|
BLAKE2b-256 checksum How to use checksums |
0832b030e20f6cfe444acb762be64f01f3696b5cf9d69b31821d95836bb65db1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp311-cp311-macosx_10_13_x86_64.whl
| Download URL | copp_py-0.2.3-cp311-cp311-macosx_10_13_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.11 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
e6e9d3cf85df3ca07e5b01a70f94ab7a0ca7f02f99df121a47d853e9dc581a56
|
|
BLAKE2b-256 checksum How to use checksums |
de2217c4a078744d2af083f97826603889b234d17bdaee0f8e23dbb04f03127f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp310-cp310-win_amd64.whl
| Download URL | copp_py-0.2.3-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 983.9 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
81d2578f863dc42a1b178c6512773638eaf0bf268c87f2b04fed4790ea51f2db
|
|
BLAKE2b-256 checksum How to use checksums |
aad545d8d96a0927e6d17eea08f2c77dddaf002ff71a5e46dee3040156d3d3af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | copp_py-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
26958a9a8187d27133e3436f2dcecf3be702acf2a0fa5da737584c2464d9f1d5
|
|
BLAKE2b-256 checksum How to use checksums |
ed14145428343242ab6ea3970e4519b7c3d7c0c7a7b585ff8d7b0264b0039c12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | copp_py-0.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 971.1 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
47be83bcc002bcbb0ab5f978e8ce17a15151f7284a4201bb12a453dcbe0ac2a3
|
|
BLAKE2b-256 checksum How to use checksums |
3263729271b673279bf0972ca73c3a0cb5e613acd463613c4a95b0ed8700b2b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | copp_py-0.2.3-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 958.3 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ddc6daa848fb6284c64014e796a11e7646688dc86d35811ca21492828395202f
|
|
BLAKE2b-256 checksum How to use checksums |
55cd9ee100f750c8b5e68c8cd412e5dca2530f3d0e349bfd5f84b262a63ca38f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp310-cp310-macosx_10_13_x86_64.whl
| Download URL | copp_py-0.2.3-cp310-cp310-macosx_10_13_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.10 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
a8de5ab2b0b4847a3af6e26b78cd394e916ae3d4d0ceb417f003076d6444bd84
|
|
BLAKE2b-256 checksum How to use checksums |
2e2ae7b305e37a2c3e05f8ea0e477bf9ed8f05d11c34e27b2e2077426a012de1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp39-cp39-win_amd64.whl
| Download URL | copp_py-0.2.3-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 986.7 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6cede7afd07296d6346d79711ee84e12b8b89f8dde1e091c4cbcd43d9f696509
|
|
BLAKE2b-256 checksum How to use checksums |
efd2a33cdf38676060d7419e08ba07bddf269c38592ab764df3f9953abe7c2e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | copp_py-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
de4c94b300067b56378be8ed528ba9be60ea557e6bde78c2a891b89ee96f5d13
|
|
BLAKE2b-256 checksum How to use checksums |
dda03e582ba53d3d861d9ddfd781524570f11057170fb1cec36ef675b0d50c36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | copp_py-0.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 973.8 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
445fd65aefc7418ae8502f81b49a4794496d8cb2c51d701c4d8f124a9bf54238
|
|
BLAKE2b-256 checksum How to use checksums |
30fe29fa86c4cbf230c1558511f9e2804681fe9b2df23689b0f4f42b69d54f9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | copp_py-0.2.3-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 961.4 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
02a3fac3c465fdfe46ab48c40e24affeb874fc0b71039c526c89461a116a63c4
|
|
BLAKE2b-256 checksum How to use checksums |
ecccc2333a82fab2b18b8b935f3a508f3702dba0ad2c75e7f10f766b8d97ac98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency logRelease files / copp_py-0.2.3-cp39-cp39-macosx_10_13_x86_64.whl
| Download URL | copp_py-0.2.3-cp39-cp39-macosx_10_13_x86_64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.9 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
ba9574331cc5f2dabdb29abcd511b01005ad53bae1cc0005090cb5d0d5ed0315
|
|
BLAKE2b-256 checksum How to use checksums |
e04751704bb7e302fe3a7f37bf19bf258c01823a414e769539c95083b9e2779d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.
Transparency log