PanorAi
Spherical image processing and projection with explicit geometry, support, validity and units. Use ready-made applications, compose a pipeline, call sphere-native operations, or keep using the Stable object workflow directly.
PanorAi is a fit when a planar image API is not enough: you need explicit ERP-to-view projection, seam-aware spherical operations, typed multiview fusion, or radial-range geometry. It is a library—not a dataset, training framework, checkpoint collection, or hidden-geometry model runner.
pip install panorai==3.8.0
The PyPI badge is authoritative for the published version. This README describes 3.8; an older badge means its separately authorized publication is still pending.
NumPy is required. Torch and model integrations are optional extras. Models, datasets, and checkpoints are never bundled into the wheel.
What can I build with it?
| Projection and fusion | Sphere-native processing |
|---|---|
| Projection-domain: sample tangent faces, apply the same blur, convolution, or model per face, then reconstruct a typed ERP field. | Sphere-native: apply GaussianBlur or spherical Conv2d directly to angular neighbourhoods—no face sampling or reconstruction. |
| Spherical features | Stereo radial range |
| Experimental application: detect spherical DoG keypoints and compute tangent descriptors. | Experimental application: estimate radial range with confidence, validity, and diagnostic outputs. |
The first row contains original API diagrams; the second contains tracked repository-example outputs, not decorative AI renders. Sources, commands, hashes, and limitations are in the image attribution and provenance.
How much API do I need?
Start with the leftmost level that solves the task. Moving right exposes more control without changing coordinate, grid, support, validity, or unit contracts. Choose a concrete object in the component catalog: compare Applications, Stages, spherical Ops/layers, estimators, typed results and Geometry by role, input, output, domain and stability; its complete public inventory lists every audited symbol.
Stable foundation: three objects
| Object | Meaning |
|---|---|
EquirectangularImage |
Complete spherical raster with typed fields. |
GnomonicFace |
One pinhole view with projection, support and validity. |
GnomonicFaceSet |
Views processed, lifted or fused together. |
from panorai import EquirectangularImage
# Use EquirectangularImage.open("room_360.jpg") for a real panorama.
panorama = EquirectangularImage.sample("spherical-grid", size=(128, 64))
views = panorama.views("fibonacci", count=20, size=64, fov=100)
result = views.map(lambda image: image * 0.8).reconstruct(blend="gaussian")
The same object offers spherical resize, 3D rotate, tangent crop, registered filter and projection-aware paste.
I/O and safety boundary: save() exports one raster, not the typed workflow; floats outside [0, 1] need value_range.
Learned Torch transforms propagate invalidity strictly, and paste() accepts a projected GnomonicFace, not a raw rectangle.
See why spherical image operations differ from Pillow.
Projection follows geometry-v1: pixel centres, top-left image origin,
+X right, +Y up, +Z forward, longitude [-π, π), and latitude north to
south. Depth means radial range unless another quantity is named explicitly.
1. Ready-made applications
The application wrappers are the shortest entry point:
from panorai.applications import (
PanoramicDenseStereo, SphericalDoGFeatures, SphericalRelativePose,
SphericalSLIC, SphericalStereoDepth,
)
labels = SphericalSLIC(n_segments=100)(panorama)
features = SphericalDoGFeatures()(panorama, panorama_id="frame-0001")
depth = SphericalStereoDepth()(reference, source, R_source_from_reference, t)
panoramic_depth = PanoramicDenseStereo(pose_mode="auto")(reference, source, baseline=baseline_m, units="m")
pose = SphericalRelativePose.reference()(reference, source) # Essential, R, unit t
| Application | Input | Result | Implementation reused |
|---|---|---|---|
SphericalSLIC |
ERP RGB | typed label RasterField |
intrinsic spherical SLIC |
SphericalDoGFeatures |
ERP RGB | bearings and descriptors | spherical DoG + tangent SIFT |
SphericalStereoDepth |
two ERPs and metric pose | radial range, confidence, validity | direct spherical plane sweep |
PanoramicDenseStereo |
two ERPs; optional pose/baseline | fused ERP radial range plus pose and diagnostics | pose → rectified views → matcher → spherical fusion |
SphericalRelativePose |
two ERP images | Essential, R, unit t direction, diagnostics | reference frontend + spatial RANSAC + MSAC/refit |
SphericalMaskRCNNWorkflow |
ERP plus external adapters | proposals, instances and masks | Mask R-CNN roles with CAM/SAM/heuristic components |
Every wrapper supports run(), __call__(), get_params(), immutable with_params(), describe(), and as_pipeline(); wrappers adapt existing algorithms rather than forking their mathematics. Relative pose also exposes RelativePoseCapturePolicy: with independent registered-depth metadata it can reject pairs below the measured 50% bidirectional-overlap eligibility boundary before feature extraction. This is an operating-envelope check, not a universal accuracy guarantee; post-estimation quality_report.accepted remains required.
SphericalSLIC is Stable as panorai-spherical-slic/v1, including typed Pipeline composition and safe JSON configuration.
The generic application base plus DoG, Stereo, Relative Pose, and Mask R-CNN Workflow wrappers remain Experimental until their installed-wheel,
license, performance, and prospective scientific gates pass.
The complete stereo workflow and its interchangeable classical matchers are documented in Panoramic dense stereo.
2. Compose the lower-level API
Use Pipeline when the ready-made application is close, but its stages need to change:
The generic panorai-spherical-pipeline/v1 contract is Stable. CAM/SAM proposal and instance-fusion stages remain
Experimental and do not inherit that promotion merely because they share the namespace.
from panorai.pipeline import (
OnSphere, Output, Parallel, PerView, Pipeline,
ReconstructERP, SampleViews,
)
from panorai.ops.spherical import GaussianBlur
pipeline = Pipeline(
Parallel(
direct=OnSphere(GaussianBlur(ksize=5, sigma=1.2)),
projected=Pipeline(
SampleViews("fibonacci", count=100, size=256, fov=100),
PerView.parallel(
batch="auto",
labels=Output(segmenter, kind="labels"),
depth=Output(depth_model, kind="depth", units="m"),
detections=Output(detector, kind="detections"),
),
ReconstructERP(labels="closest", depth="gaussian"),
),
),
)
results = pipeline(panorama) # ResultBundle: results["direct"], results["projected"]
Core stages include OnSphere, SampleViews, PerView.parallel, ReconstructERP, LiftToBearings, and AggregateViews.
Parallel, Select, and Attach branch and route named results.
PerView.parallel is logical branching, not a promise of threads. batch=None runs per view, an integer fixes chunk size,
and batch="auto" requires declared batch support. There is no silent retry after out-of-memory errors.
Pipeline outputs preserve their meaning:
| Output family | Public result |
|---|---|
| image, depth, labels, mask, logits, features | RasterField with RasterGrid |
| classification | ClassificationResult |
| embedding | EmbeddingResult |
| keypoints or detections | per-view or SphericalObservations |
| multiple branches | ResultBundle |
Third-party stages implement Stage and return StageResult; Pipeline also implements Stage, so pipelines can be nested.
3. Sphere-native operations and Torch layers
Functions and immutable operation objects live in panorai.ops.spherical:
from panorai.ops.spherical import GaussianBlur, SLIC, sobel
from panorai.pipeline import OnSphere, Pipeline
smooth = Pipeline(OnSphere(GaussianBlur(ksize=5, sigma=1.2)))(panorama)
labels = Pipeline(OnSphere(SLIC(n_segments=100), output="labels"))(panorama)
east_gradient = sobel(panorama.image.mean(axis=-1), direction="east")
The library includes resampling, rotation, filters, blur, Sobel, gradient, Laplacian, Canny, solid-angle statistics, SLIC, DoG,
spherical NMS, and Gaussian/Laplacian pyramids. Historical panorai.image_processing imports remain valid.
General NumPy operations form the Stable panorai-spherical-ops/v1 contract; SLIC is separately Stable.
DoGDetector and the mixed-stability algorithms gateway remain Experimental: the analytic oracle passed, but external held-out
and performance gates remain open. Optional Torch layers are Stable on CPU; CUDA and MPS await independent matrix testing.
Optional Torch layers use the same spherical grid contract:
import torch
from panorai.ops.spherical import nn as spherical_nn
network = torch.nn.Sequential(
spherical_nn.Conv2d(3, 16, 3, padding=1),
torch.nn.ReLU(),
spherical_nn.MaxPool2d(2),
)
report = spherical_nn.validate(network, input_shape=(256, 512))
Convolution, transposed convolution, and pooling update lattice anchor, stride, and resolution; reduced lattices cannot masquerade as canonical ERP. Learned convolution propagates validity strictly; only normalized average/Gaussian operations renormalize it.
4. Mask R-CNN taxonomy and the executable workflow
The executable workflow keeps Mask R-CNN responsibilities visible without pretending to be the future trainable architecture:
from panorai.experimental.deep_learning import mask_rcnn
method = mask_rcnn.workflow(
proposal_mode="cam",
proposal=cam_adapter,
mask=sam_adapter,
heuristic=instance_heuristic,
concepts=("pipe", "equipment"),
num_classes=3,
)
instances = method(panorama)
architecture = method.architecture
- In CAM mode, CAM is the proposal generator and SAM refines region masks.
- In SAM mode, SAM proposes masks and can reuse them with
reuse_proposal_masks=True. - The instance heuristic fills the
BoxHeadclassification responsibility, can abstain, and is not a learned classifier model. .architectureexposes Backbone, ProposalGenerator, RoIAlign, BoxHead, MaskHead and RoIHeads;mask_rcnn.paper()remains a deprecated compatibility alias.
SphericalMaskRCNN represents the future trainable Backbone → RPN → RoIAlign → Box/Mask topology, but deliberately raises
UnboundMaskRCNNError. PanorAi adds no trainer, dataset framework, or checkpoints to its projection core.
Reproducibility and safety
Pipeline topology uses canonical JSON and an explicit PanorAi allowlist; files cannot request arbitrary Python imports. Cache entries
use safe NumPy archives, atomic writes, and checksums—never pickle—and identify values, support, validity, grid, dtype, layout,
backend, device, version, and configuration. Registered Torch weights use safetensors and require eval mode. Tensors with
requires_grad=True fail before caching, so autograd is never disconnected silently.
Go deeper
Metadata
Release files for panorai 3.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| panorai-3.8.0.tar.gz | 4.7 MB | With provenance | Details for panorai-3.8.0.tar.gz |
Built distributions (wheels)
Total release size: 23.4 MB
Release files / panorai-3.8.0.tar.gz
| Download URL | panorai-3.8.0.tar.gz |
|---|---|
| Size | 4.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
366e9b9c3c35144249301ad3b3264eb2bb50ec9dc484a2e70d6ef2677434512c
|
|
BLAKE2b-256 checksum How to use checksums |
e5a4786c5ed586f4775fec77334dca8f4a3fcdf417ea87e68b474a2e4b94add6
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp314-cp314-win_amd64.whl
| Download URL | panorai-3.8.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 961.5 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
991dac13c213ba047ee7b1ea2e604297380b339ae9631b566b09d44054052600
|
|
BLAKE2b-256 checksum How to use checksums |
633d8ffa658789d6257c590ae27fd370d8cf39364a43a74960ee801d7b95c6da
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
30edbb8288c13693c167e5d637d53e49df7573ef13b4bdecc5496d62c33a5765
|
|
BLAKE2b-256 checksum How to use checksums |
6cd0122c1f3d7fe75f0fef3b2c07a085ce3478642fb38645870938e73cc353a3
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.8.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9910a837eb8c65de16f31aaf42fe5d9ea60dfcc8e5455b2436b70437901d7dfe
|
|
BLAKE2b-256 checksum How to use checksums |
134ddee38855dbc6b689e3962c30ce58b6bcb3cb9fd8cf557cd1c8d1fd14cfbc
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | panorai-3.8.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 759.3 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6229de30ad34ae9533aa6e877911c51fb424b46e02615241a545b35a2ff5142a
|
|
BLAKE2b-256 checksum How to use checksums |
e6c82983897d58cbcb81238c0a007fcca28f17d90e1d13e5e1f99e715c2f0f51
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | panorai-3.8.0-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 760.6 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
e01e66ba9571f5a4b578228dcf4793f0c1f485edec70c364b7a21ffd48301c34
|
|
BLAKE2b-256 checksum How to use checksums |
2cc9a87bdc4fea1923eaa12711b3a2dc9561fbb4f28676c305c285b964c1fa70
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp313-cp313-win_amd64.whl
| Download URL | panorai-3.8.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 954.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
181008219dc107b061706a04ac0b56867a34527c2aa48e89d8f5de3e5eece881
|
|
BLAKE2b-256 checksum How to use checksums |
f3fc391491e92907aae2a027e8d2f0422d45d352357180c4323dcc08672d4ee4
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d1602626c532b157361b929f116dc2c01d6695f6d5053ef4a7294ff5ba38d289
|
|
BLAKE2b-256 checksum How to use checksums |
b90ad2b4dc5603ee665c3dfe6aca883525b118f4d8d148e8cfd7323c046a2887
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.8.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
065aeeef80fff6d8b6ca0d0655ea1e85a58c3b3b3a2b1fa2cf2c7c3417e93ad4
|
|
BLAKE2b-256 checksum How to use checksums |
bf2d2c1b015ffa34fc9660889775a0a63487efa5df3bfff1ec14345773583c76
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | panorai-3.8.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 759.3 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b4992f9d170542eadd7ffdd0622224c995689d942b89753166da859532c2962f
|
|
BLAKE2b-256 checksum How to use checksums |
38c4e3e1c05c628fec16a4c056ba0c3d644afc102b0ee952f0a2e3388bbe9e2e
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | panorai-3.8.0-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 760.4 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
15fa0abb52d0de41017cbda5e88aec35f21df6456c534afde69c515af2e51d6e
|
|
BLAKE2b-256 checksum How to use checksums |
442795d37b53a5653dfd9c333fad03c12ac2f8709596375012fbc36ec5285427
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp312-cp312-win_amd64.whl
| Download URL | panorai-3.8.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 954.5 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0a8eff365ef1ed9bf532fd3ec20514b825067ff12eb8a7ae1ac81f3d43f9c4ed
|
|
BLAKE2b-256 checksum How to use checksums |
0c4d9b4122c47a4f962381c563baa7f3b14db74c7472a585038e73d081a81ef6
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c73029c0f99be08be4ebcbe3f950de294b8571cd75776082f5077fe346402e20
|
|
BLAKE2b-256 checksum How to use checksums |
1ea4467f703660260f47ae5a38e7c82a35128f897ace8c17dc27e53b1c6f6ef8
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.8.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3e12719819267f687ae25b0579db5ac2159576157ccf2fb375fbb589b13a692c
|
|
BLAKE2b-256 checksum How to use checksums |
70b0ee1d2fc09afd3a36e9f5c10b3157e972c48d0bc207610c4885d16bc544ec
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | panorai-3.8.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 759.2 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d89eb3c91269620629f13e2b49d23b791f01d0d244d1e97ec21fbcb91671e793
|
|
BLAKE2b-256 checksum How to use checksums |
0ed7d5ee3efe45b9449a9b282eef45a46e4b6392a6bdc965e0fa71187d46a742
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | panorai-3.8.0-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 760.4 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
48102f8d5f44c10c7ab2c9e6e2705eaf49ff0f8db6d3fc8ee8a5cf63aaa4eef9
|
|
BLAKE2b-256 checksum How to use checksums |
57232a14e94b7a8135e6ad3ba98d51710e456499cd1a017b608e62eccabb595d
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp311-cp311-win_amd64.whl
| Download URL | panorai-3.8.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 954.5 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d581afff3e6267d1d927847457969c034ade77d882af91c13728f75a99f4c16c
|
|
BLAKE2b-256 checksum How to use checksums |
ea4ad97edd99be636e87d2d063aee9e5959240b300a3df46c344dc520fdaaa6b
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | panorai-3.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a4ae66c6c48914b5756a00d7439ec5b166a69c82cc17be72329170a4eed83bb6
|
|
BLAKE2b-256 checksum How to use checksums |
0fd7f37da34b6cf227cd490a7ade2de8290651ee6ad0bd443b108ff22c55337c
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | panorai-3.8.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
661ad9843060ab27519bdd66c7defb9d12eec1b7121b6e53fb5b2f58d3d79ff3
|
|
BLAKE2b-256 checksum How to use checksums |
91ed345c7c261e3cafd25b4c6a2731bdc5c712a41446bd2505a9a2d94857c4f0
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | panorai-3.8.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 759.2 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7442c9dfa97ec6111a4e2eec121d80ebd6d54080fb7c423b686f9f76e00fa295
|
|
BLAKE2b-256 checksum How to use checksums |
a5fc3ae1ad50bc7d878f523cc2e1210a3b95c92be278f44c93fd352138764180
|
| 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 Oct 18, 2026.
Transparency logRelease files / panorai-3.8.0-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | panorai-3.8.0-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 759.3 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
a952be926d8b147c12f5f6dbe1f02c995834b063a5624c57b0efbfb04185f528
|
|
BLAKE2b-256 checksum How to use checksums |
100e9e28f346eef35c3d9bc00823b451d8d09e1d6ea346bc6108253d927977ea
|
| 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 Oct 18, 2026.
Transparency logSecurity for panorai 3.8.0
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.
Full provenance
All 21 files in this release have been uploaded with provenance metadata.
Attestation for panorai-3.8.0.tar.gz
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 Oct 18, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.