Skip to main content

A high-performance package for fitting principal curves in Python

Project description

Downloads PyPI Python License: MIT

prinPy

A high-performance Python library for fitting principal curves to n-dimensional data, with core algorithms implemented in Rust for speed.

Inspired by the princurve R package.


Installation

pip install prinpy

For neural-network-based fitting (requires PyTorch):

pip install "prinpy[neural]"

Requirements: Python ≥ 3.9, NumPy ≥ 1.20


Quick Start

import numpy as np
from prinpy.local_curves import ConstrainedFitter, GreedyFit

# Noisy 2D spiral
theta = np.linspace(0, 3 * np.pi, 400)
r = np.linspace(0, 1, 400) ** 0.5
data = np.column_stack([r * np.cos(theta), r * np.sin(theta)])
data += np.random.normal(scale=0.02, size=data.shape)

# Fit a principal curve
curve = ConstrainedFitter(algorithm=GreedyFit(), tolerance=0.05).fit(data)

# Project data onto the curve — returns arc lengths, unit positions, and coordinates
projection = curve.project(data)
print(projection.arc_lengths)   # distance along the curve for each point
print(projection.unit_lengths)  # normalised position in [0, 1]
print(projection.points)        # nearest point on the curve

# Reconstruct 100 evenly-spaced points along the curve
reconstructed = curve.interpolate_from_unit(np.linspace(0, 1, 100)).points

What is a Principal Curve?

A principal curve is a smooth, one-dimensional manifold that passes through the middle of a dataset. It is the nonlinear generalisation of a principal component — instead of a straight line of best fit, it is a curve of best fit.

Principal curves are used in GPS track smoothing, bioinformatics, image processing, and anywhere a dataset has an intrinsic one-dimensional structure.


Algorithms

Class Module Strategy Best for
GreedyFit prinpy.local_curves CLPC-g (greedy) Fast fitting, simple or tightly-bunched curves
SVDFit prinpy.local_curves CLPC-s (truncated SVD) Higher accuracy on complex curves
NetworkFitter prinpy.global_curves NLPCA (autoencoder) Sparse data or diffuse point clouds

All algorithms return a PrincipalCurve with the same interface — your downstream code never depends on which algorithm was used.


Local Algorithms

Local algorithms grow the curve one segment at a time, marching from one end of the data to the other. They are fast and work well for tightly structured data.

Both are accessed through ConstrainedFitter, which wraps the chosen segment-finding strategy and fits a smooth spline through the resulting vertices.

from prinpy.local_curves import ConstrainedFitter, GreedyFit, SVDFit

# Greedy — faster, good for most use cases
curve = ConstrainedFitter(algorithm=GreedyFit(inner_radius=0.9), tolerance=0.05).fit(data)

# SVD — more accurate for complex or curved shapes
curve = ConstrainedFitter(algorithm=SVDFit(), tolerance=0.05).fit(data)

tolerance controls the maximum allowed local fitting error per segment. Lower values produce more control points and a tighter fit; higher values produce a coarser, smoother curve.


Global Algorithm (Neural Network)

The global algorithm fits an autoassociative neural network (NLPCA) whose bottleneck layer encodes the one-dimensional position along the curve. It is better suited to sparse or cloud-like data where local structure is not well-defined.

from prinpy.global_curves import NetworkFitter, TrainingCallback

curve = NetworkFitter(
    dim=2,          # dimensionality of your data
    n_hidden=16,    # hidden layer size
    lr=0.01,        # learning rate
    epochs=500,
    callback=TrainingCallback(print_progress=True, every_n_epochs=50),
).fit(data)

Requires pip install "prinpy[neural]".


Working with a Fitted Curve

Every algorithm returns a PrincipalCurve with the same interface:

# Total arc length of the curve
total_length = curve.length()

# Project arbitrary points onto the curve
proj = curve.project(new_data)
proj.points        # (n, d) — nearest points on the curve
proj.arc_lengths   # (n,)   — distance from the start of the curve
proj.unit_lengths  # (n,)   — normalised position in [0, 1]

# Interpolate from arc length
proj = curve.interpolate_from_length(np.array([0.0, 0.5, 1.2]))

# Interpolate from normalised position
proj = curve.interpolate_from_unit(np.linspace(0, 1, 200))

# Control points that define the curve's shape
pts = curve.control_points()  # (k, d)

Development

prinPy uses maturin to build the Rust extension.

# Clone and set up
git clone https://github.com/artusoma/prinpy
cd prinpy

# Install maturin and build the Rust extension in-place
pip install maturin
maturin develop

# Install Python dependencies (add [neural] for PyTorch support)
pip install -e ".[neural]"

# Run tests
python -m pytest tests/

Migrating from v0.x

v1.0.0 is not backwards-compatible. Key changes:

  • A standard PrincipalCurve / CurveFitter interface now exists — v0.x had no common API
  • Core algorithms rewritten in Rust (~70× faster)
  • PyTorch replaces Keras/TensorFlow for the neural fitter
  • SVDFit replaces the old one-dimensional search algorithm
  • All fitters now return a standard PrincipalCurve with a unified projection and interpolation API

References

[1] Dewang Chen, Jiateng Yin, Shiying Yang, Lingxi Li, Peter Pudney, Constraint local principal curve: Concept, algorithms and applications, Journal of Computational and Applied Mathematics, Volume 298, 2016, Pages 222–235. https://doi.org/10.1016/j.cam.2015.11.041

[2] Mark Kramer, Nonlinear Principal Component Analysis Using Autoassociative Neural Networks, AIChE Journal, 1991.


License

MIT © Matthew Artuso. See LICENSE for details.

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

prinpy-1.0.0.tar.gz (828.6 kB view details)

Uploaded Source

Built Distributions

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

prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (313.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.3 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (308.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp314-cp314-win_amd64.whl (188.5 kB view details)

Uploaded CPython 3.14Windows x86-64

prinpy-1.0.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (309.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp314-cp314-macosx_11_0_arm64.whl (281.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

prinpy-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl (297.6 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

prinpy-1.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (308.3 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp313-cp313-win_amd64.whl (188.5 kB view details)

Uploaded CPython 3.13Windows x86-64

prinpy-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (310.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp313-cp313-macosx_11_0_arm64.whl (281.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

prinpy-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl (297.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

prinpy-1.0.0-cp312-cp312-win_amd64.whl (188.5 kB view details)

Uploaded CPython 3.12Windows x86-64

prinpy-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (331.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (309.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (281.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

prinpy-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl (297.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

prinpy-1.0.0-cp311-cp311-win_amd64.whl (190.2 kB view details)

Uploaded CPython 3.11Windows x86-64

prinpy-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (333.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (312.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (282.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

prinpy-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl (298.8 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

prinpy-1.0.0-cp310-cp310-win_amd64.whl (190.3 kB view details)

Uploaded CPython 3.10Windows x86-64

prinpy-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (311.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

prinpy-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (334.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

prinpy-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (312.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

File details

Details for the file prinpy-1.0.0.tar.gz.

File metadata

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

File hashes

Hashes for prinpy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bb6e8de276e0667e2e8f75d9e5be54a66e82f83a586528e09d2945b13b904f31
MD5 6745f15a6785deb85bcf8f9dc0b439ca
BLAKE2b-256 e23cfc3755d5ff276f91f88dd4e06ed51a96eebccbe14f7365a02b8c7b525814

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0.tar.gz:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f08b1e680e92e353e205e524dca300349727963ad3e23e2764380bc4fdc28be1
MD5 0640e0649f344c879657ed6e6d2a3676
BLAKE2b-256 c6c0c657c724b6b843485c5f0b5883ff15dceb3ec4b84db351b12369c73c5aa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0a9e288efce620c12fcb1e7e5a7ba749f88588e449569361f1623baa31a0e52
MD5 a36b266546cf4d0ee773516ddcf5779d
BLAKE2b-256 0cf948687c4b5863f06597c304bb4246cd5d692b5bbb7bc30efee6c691df46b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac383e0d324db05d194c272c4867cdd49d41ab6f45501f8aa151e2c9a4f63421
MD5 797a1811cf02645eb032a74497512131
BLAKE2b-256 576a8c14f79dbb2dea9e521e7bc4de0505a4185fa977c87e906b28998d04b85d

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b68e0601ae623ac471191767c6d53fc1f4a0c48a5af01a8283f792722827f303
MD5 3cca7788b9046f50ef745bda8feab88e
BLAKE2b-256 a647a388305ea63cc6120da092b4fdbefc51a65166b0ee9a5f53280337915201

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: prinpy-1.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 188.5 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 prinpy-1.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 807fd3da9bed810f2d6d4da75480be1cc595de886670baffa47bb6333d6ed413
MD5 3a5c4bc76b64e6c09e88158dae08de45
BLAKE2b-256 c574f68ece3eeb28e7c5c1ab0a4b9f268fb8e90aa12ddefb75a410d0531f2690

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c88f9baf8a9bfc2c737c369e0d9fb7972cfcaf7ec0e09788a578659d189b1600
MD5 fec22a48f73e474ea0faaaf2def6d541
BLAKE2b-256 7e66c9766f0994641f842933b0b2bb436ca8a36986a20c3e3c1b81cd4e7c8517

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af0d7195711d5b31a870c9fba5b2b593e382e5fc80ba9677f4bbc4f825fc012e
MD5 302d4af49f52e1df55e5d71b0600b79a
BLAKE2b-256 533bd04ce61b0885a8518d3fe6452036c9635fbd0273a1d4aaa82c740ddd286b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86fe0f4e617ba6f33a761f7c3aa4fd93c9404e8044d840c1b8d764ba7538eb4c
MD5 d7e652a037b8a2802d23654564da7a5e
BLAKE2b-256 48ee75ed5fb79cc2438b86eefa1a7842133cd6cfee6ded4b335525f4bc0852c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a1e020b47d831c85ccff55b620c87089d88c8896a2255be7a0945a2e34f4d51b
MD5 eb2488c92a7148221731e14d2b06219a
BLAKE2b-256 adb73ba2c8774efc5af6ba429b80fec064c3600f6e5042ef306dd6d9326cb016

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2b1623bb36175531c89eb157737b8c8c8e2a18eae57ecf992eb030394f0a06f5
MD5 39a4d56f0d4d073e416a285d37ee3af4
BLAKE2b-256 b4e1de023b5a4e08b7b7d10d37423ca0607f7b2115b8c1f2d16c42b351730165

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: prinpy-1.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 188.5 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 prinpy-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e0331b9459deaf0110344103bf5c81cd60d755f99a4534185a55e6d1dad3c1b3
MD5 b08e557bdfdafb0f15d7bd6893297073
BLAKE2b-256 cce28823dd9ad5772dcb660415026f58079c0d363f3530c37b8a0387b5d6ec4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39c09043788883866429f0a9f821b5aa82f7cd88ba13d2426972020b2d2e82ca
MD5 69ed689d07901f1603317f0ceaed9217
BLAKE2b-256 d721b46d7fa95a92979854800b7d65e4efccaeaa09536bc02ceac7217a102703

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 661e1f2dd70c30711e348c0d086a096ead4216f7a54b3a5f56b6d47a2a238994
MD5 c6ba9a2eadf6596e490771df527baff3
BLAKE2b-256 244e7722caf606247beea1514610053d9aa4f458b47f42f0284eeb0dbb5d88d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93e9ac224b23477e73cea69b79c2f07678fc4c6d350f13e581d49d05078972d4
MD5 c6ad002d4d5c8b6f8c3e94dcd90c1021
BLAKE2b-256 cd93d90ef27463b74414a46d4103adea7b657c97517d17d68d645b91c3cad09c

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 74a88a5274f8fe3de24f374161b90c893b2bacd6102bc3e305cfe15c77653275
MD5 0d78dc3731b2435371bd35d06d464c0e
BLAKE2b-256 ab2a2df6fd27eb10afdef86df08ebf3c116779c64f53765c2c46d4c8c59591f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: prinpy-1.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 188.5 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 prinpy-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 23f0bb413b25b079383f6ca20222353bf44fa8052a46fa34e08533b16420dacb
MD5 efbd19dfbaf9e167657179e49b1fb50a
BLAKE2b-256 12f34cf22863f1249c3d4af3c0a3ff103657e0f8766081375dac57d9cca097bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ffb37c46fd511de43dee2030bd4d781d5c225f10d560a9d2b0679f8f8a8b324b
MD5 ef2093b73a5444a7d29f256ad25b3edf
BLAKE2b-256 f3010cde7bed1cdeb3ed7170a4701909b5a25dcef725b472e807d7ef1b6555ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c5e120067bccfdd65139805364bfef6b963ada6b612104d5d6b662cf0281b79a
MD5 f0356aee2288b9f4dc569138f9554583
BLAKE2b-256 3f77ff62786139894c46c37dde2afc1a7f8530f03d8d03e157de284fead9a6b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 982ac2927bea465053edce1fb3c2c2111e8f54aec95a09d85f4eabc47e6241ad
MD5 4cb5517fcff713594fb82e7ce9f642b6
BLAKE2b-256 9e03f7d4750dea15a1734d5eef40150b40766b57e767abe14e37d429f1c3b64c

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 952d8c965c2d41c31d25e363912efd26e1d28b41746e3278ef8b3e7e890e59a6
MD5 c819347a1d1f736e955e29de9c7ee779
BLAKE2b-256 29c68e708a5b2bb7fb1ff8c08de615bf4eaea0bade3898c60d946373ed3a11be

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: prinpy-1.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 190.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for prinpy-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ea76a7e93fda67f80aee552979304f837b220d3dc62ae2e0da10f64997d0d429
MD5 a7a55bc082ecdc17ec6e0fbbccf78474
BLAKE2b-256 70bc116a7f6f13cf1679a94fbb68497645d546ff3c23cecd68c375a6fa3fdd11

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0702231c9428bdc6c1225e49b5dc579827a628f9d9d69f3610bcb286da96e85d
MD5 b8f82343dc14f83de3a51c876216768f
BLAKE2b-256 a538ade2e5fd64f9a96127e102d91470e23bfa62ffb58df6fe22186e44f60dce

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9a37dbf84b3ce3bb81cd108e853332bf8dc0e5b5d48bb173c9e86ac8004c7ac6
MD5 5ef83c8ed07ea7e6fbdee2a5beb9cc98
BLAKE2b-256 16f86ec368bd3dea6bce0aac2ceb43f9d97216047aafa39675f206c82885db2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41e1bc053fb80a9fa97d0c1389c2096159a8153ffeed6d45da35b59358a39e3b
MD5 c0aa470e546ecb33927f7d9afe224d80
BLAKE2b-256 91617929f966bcf6419c9f745c024fa14b1761790b111a9747a9b6c4a012169a

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a49812e569aa3de75193d07377f524f2daae694c2c2adeadf400f8da95183e2f
MD5 ae97422e5a39262b0b65e28b78143949
BLAKE2b-256 030ffe68c55e6d7251992d3b0648a46cd11d74da7c295a0c611001751e55aa96

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: prinpy-1.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 190.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for prinpy-1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0a61d9f8daac21a3179372408ebacafa79347c5b194646502379939d154fba38
MD5 1116c5857f7526132a7f1e8eaa656639
BLAKE2b-256 f593bba372ceb6cc8258a805223d833200d6e43889288e35c03749d1f6b8487b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8232daf807b509f8c768f8611e3577384268c403bab30ad7d2f3fc9fa8a2626e
MD5 cfdf9695c51d503e4e9c3a4f0c76bfc5
BLAKE2b-256 cf43beae946de537586388cf902daf3adc422b4447871ed6f546840ad69e73f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 561e9cb0e929c05d52cc6983819a37e6824f59a2aaed1adf4812e973172ff1d3
MD5 f14c4f2f19bc81b54048e9b9704eeeb6
BLAKE2b-256 ed79b3f09ff033aee9d54b215c5070f823b721034d00cbd5e6b66e366bc3d28f

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 185f106681a92ac7de42bba4f40e7f49979b85a71f282c6f505fb9bfea74abc8
MD5 4113896e285b585216057d6e2acf017f
BLAKE2b-256 44229b2bdf62b98ef495ea41eb68299be9a082bc2a0e203076533d6ed8e22b58

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on artusoma/prinPy

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

File details

Details for the file prinpy-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for prinpy-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 129106ee3cdba8a2caed1eb586e515e3317febed72a27fe325cd38e3698f94f7
MD5 7d8dc65ed12a688c56acd4e72f41e13c
BLAKE2b-256 9630267b4034dbebc7498ca05f258c3bc845b5b8ac07d13940f522a37b34d13b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prinpy-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on artusoma/prinPy

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