Skip to main content

nanofractal

codecov

Fast fractal fiducial-marker detection for Python. Fractal markers are nested square markers: they stay detectable under heavy occlusion and over a wide range of distances, and every visible level contributes corner correspondences for accurate pose.

nanofractal wraps an optimised C++ pipeline with nanobind: zero-copy NumPy ↔ cv::Mat, the GIL is released during detection, multi-threaded single-frame detection, and a parallel batch API.

Since 0.6 the library is fractal-only (the ArUco detector was removed). 0.7 reads far markers the reference detector misses (2.6–3 px per cell), explains rejected candidates (diagnose), drops levels that do not fit the rest, finds every copy of a marker, reports pose uncertainty, scales the tracker to the marker size and adds NEON code for aarch64. 0.7.1 finds markers seen from very close on dark frames (a second threshold pass); 0.7.2 reports the reading quality of every level and keeps a marker that flickers at the edge of range (prior / FractalTracker(use_prior=True)). 0.7.3 picks up a marker that is in view but never read yet, once it holds its place for a few frames (FractalTracker(capture_frames=3)). 0.7.4 reads a far marker with a looser tolerance when its size is known from the height (expected_side_px), reports lookalikes, and gives one number for the pose uncertainty (Pose.sd_t).

📖 User guide — markers and printing, detection, pose, video, how to use it most efficiently, parameter tuning, API reference, troubleshooting. Every Python example in it, and in this README, is executed by the test-suite.


Performance

The hot path (adaptive threshold, contour tracing, polygon fitting, decoding) is a purpose-built reimplementation: every level the reference detector finds comes back with bit-identical corners (checked by the test-suite against _reference_detect), and it runs on all cores within a single frame.

Median latency per frame, FRACTAL_5L_6, synthetic scenes from nanofractal.bench, i5-12400 (6 cores / 12 threads), NF_MARCH=x86-64-v3, OpenCV 4.10 — the configuration of the published wheels:

scene / mode res 0.5, 1 core 0.7.3, 1 core 0.5, all cores 0.7.3, all cores gain (all cores)
marker in clutter, detect 1080p 11.3 ms 3.21 ms 12.3 ms 0.99 ms ×12.4
marker in clutter, with_inner_points 1080p 13.4 ms 4.50 ms 14.4 ms 2.18 ms ×6.6
no marker (clutter only) 1080p 12.7 ms 3.42 ms 13.8 ms 0.85 ms ×16
marker in clutter, detect 4K 52.6 ms 12.1 ms 49.5 ms 4.69 ms ×10.6
marker in clutter, with_inner_points 4K 54.6 ms 15.6 ms 55.3 ms 7.20 ms ×7.7
no marker (clutter only) 4K 55.3 ms 13.3 ms 55.1 ms 4.95 ms ×11
detect_batch, 48 × 1080p — — — 382 fps ~1500 fps ×3.9

0.7.3 measured 2026-11-03 (one core pinned with taskset); 0.5 on the same machine earlier. A frame with no marker costs 0.1–0.7 ms more than in 0.6: it is thresholded a second time for markers seen from very close (params.close_pass = False skips that).

With OpenCV 5.0 (whose own findContours is already ~3× faster than 4.10's) 0.6 is 2–2.5× faster than 0.5 on one core and 3–8.5× with all cores, e.g. 1080p detect 4.66 → 0.92 ms and 4K 15.9 → 4.14 ms.

0.7 adds a SIMD prefix-scan threshold (detect on one core ×1.17–1.34 at 4K, ×1.05–1.12 at 1080p) and NEON code for aarch64 (Raspberry Pi 5, one core: 1.5–2× faster than the scalar build). The second bit reading costs nothing measurable on scenes the reference already reads. Every push is timed against the previous commit in CI and fails on a slowdown.

Reproduce on your machine:

python -m nanofractal.bench --resolution 1920x1080 --scene perspective
python benchmarks/fractal_bench.py run --resolutions 1920x1080 3840x2160 --batch

Levers:

  • nf.set_num_threads(n) — threads used inside one detect() call (default: all cores; 1 = sequential, best for many concurrent detectors). Next to video capture/encoding, fewer threads are often faster (Raspberry Pi 5 with a 60 fps camera and preview: 2 threads 57.5 frames/s, 4 threads 32.5) — start with half the cores and measure the whole pipeline.
  • params.detection_scale — runs the threshold/contour stage on a downscaled frame (corners are still refined at full resolution); 0.5 is roughly 3–4× faster at 4K.
  • FractalTracker — for video: searches near the previous frame's markers (whole frame when they are lost), with identical accuracy; ~2× faster at 4K and 1.4–1.8× at 1080p on a moving-marker sequence. With auto_scale=True it also shrinks the searched region to the marker size (corners still refined on the full frame): 4K, one core, ×5.7 vs detect.
  • detect_batch — parallelises across frames for offline throughput.

Installation

pip install nanofractal

Wheels are available for Linux x86_64/aarch64, macOS arm64/x86_64 (macOS 11+) and Windows AMD64, CPython 3.9–3.14 (x86_64 wheels require AVX2, i.e. Haswell 2013 or newer). They bundle a minimal OpenCV, so no system OpenCV is required at runtime.

Build from source

You need a C++17 compiler, CMake ≥ 3.18 and a development OpenCV — 4.x (core, imgproc, calib3d, features2d) or 5.x (core, imgproc, geometry, features):

sudo apt-get install -y build-essential cmake libopencv-dev   # Debian/Ubuntu
pip install .
NF_MARCH=x86-64-v3 pip install .     # AVX2 build (what the x86_64 wheels use)

Quick start

Inputs are plain NumPy uint8 arrays — (H, W) / (H, W, 1) grayscale or (H, W, 3) BGR, C-contiguous.

Generate a marker

import nanofractal as nf

marker = nf.generate_fractal("FRACTAL_5L_6", size_px=1200)   # every nested level
outer = nf.generate_fractal("FRACTAL_5L_6", size_px=1200, nested=False)  # external level only

The image spans the marker's black border exactly; leave a white quiet zone around it when printing. Configs: FRACTAL_2L_6, FRACTAL_3L_6, FRACTAL_4L_6, FRACTAL_5L_6 (number of nested levels).

Detect

import numpy as np
import nanofractal as nf

# a test frame: the marker on a white page (or image = cv2.imread("scene.png"))
image = np.full((900, 1200), 255, np.uint8)
image[150:750, 300:900] = nf.generate_fractal("FRACTAL_5L_6", 600)
det = nf.FractalDetector("FRACTAL_5L_6", marker_size=0.2)  # side in metres

res = det.detect(image)
print(res.ids)       # int32 (N,)      — one entry per visible marker level
print(res.corners)   # float32 (N,4,2) — outer corners, sub-pixel
for level_id, corners in res:
    print(level_id, corners[0])
assert 0 in res.ids

Pose (occlusion-robust)

estimate_pose returns (rvec, tvec, reproj_err) or None. It uses every visible inner and outer corner correspondence when available and falls back to the outer corners of every detected level otherwise (each at its true size, so the scale is right even when only an inner level is visible); reproj_err (RMS px) lets you gate noisy poses.

camera_matrix = np.array([[1000.0, 0, 600], [0, 1000.0, 450], [0, 0, 1]])
dist_coeffs = np.zeros(5)

res = det.detect(image, with_inner_points=True)
pose = det.estimate_pose(res, camera_matrix, dist_coeffs)       # fisheye=True for the fisheye model
if pose is not None:
    rvec, tvec, reproj_err = pose
    print(tvec.ravel(), reproj_err)    # marker 0.2 m wide, 600 px: about 0.33 m away
    vis = det.draw(image, res, camera_matrix, dist_coeffs, rvec, tvec)   # outlines + axes

The raw correspondences are exposed too: res.points_2d float32 (M, 2), res.points_3d float32 (M, 3) (planar, z = 0) and res.points_level, the level of each point.

estimate_pose(..., full=True) returns a Pose with the method used, the number of points and inliers, the 6×6 covariance cov of (rvec, tvec) and the other planar solution (rvec_alt, tvec_alt, reproj_err_alt): when reproj_err_alt is close to reproj_err the tilt is ambiguous.

Tune detection

p = nf.DetectorParams()
p.detection_scale = 0.5      # downscaled threshold/contour stage
p.min_contour_size = 60      # detect smaller markers (default 120 px perimeter)
p.adaptive_block_size = 21   # threshold window (odd, >= 3; -1 = auto)
p.adaptive_c = 7.0           # threshold constant
p.approx_poly_rate = 0.05    # polygon fit epsilon = perimeter * rate
p.subpix_win_size = 4        # corner refinement half-window (0 = off)
p.kfilter_min_dist = 10.0    # min distance between inner-corner keypoints
p.close_pass = True          # retry empty frames with a large threshold block (very close markers)
det = nf.FractalDetector("FRACTAL_5L_6", params=p)
det.params.adaptive_c = 5.0  # changes apply to the next detect()

Video

frames = [np.roll(image, 20 * k, axis=1) for k in range(5)]   # stand-in for a camera
tracker = nf.FractalTracker(det, auto_scale=True, use_prior=True)   # margin=0.25, pad=16
for frame in frames:
    res = tracker.detect(frame)           # det.detect(frame), plus levels read through the last result
    print(res.cell_px, res.contrast, res.bit_errors)   # reading quality per level

# on a drone's approach: also pick up the marker before it is first read
tracker = nf.FractalTracker(det, use_prior=True, capture_frames=3)

More

  • detect(image, roi=(x, y, w, h)) — detect in a zero-copy sub-rectangle; corners come back in full-image coordinates.
  • detect_batch(images, num_threads=0, roi=None) — parallel over frames.
  • detect(image, all_instances=True) — every copy of the marker in view; res.instance(k) is copy k, ready for estimate_pose.
  • res.inconsistent_ids — levels dropped because they do not fit the larger levels (a marker-like pattern elsewhere in the frame).
  • detect(image, prior=last_result) — a level the plain reading misses by a few cells where it was a moment ago is kept and marked by bit_errors > 0 (outer levels only; flight video: 10 more frames of 203).
  • FractalTracker(det, capture_frames=3) — a quad within the same tolerance of a level's code that stays in place for 2 frames is read with it as prior in the 3rd (flight videos: the marker read 8–39 s earlier on the approach; no candidate on 2400 frames without it).
  • detect(image, expected_side_px=(lo, hi)) — the marker's size from the height (rangefinder): that size is read with a looser tolerance and res.lookalikes lists near misses with centre, border errors and contrast (flight videos: 4780 frames with the marker instead of 4480, first read 7–36 s earlier; no false read or lookalike without a marker).
  • res.cell_px, res.contrast, res.bit_errors — reading quality of every level, to weigh a detection instead of a yes/no; Pose.sd_t / Pose.sd_rot_deg — one number for the pose uncertainty.
  • diagnose(image) — every candidate quad with the reason it was kept or dropped ("duplicate", "border", "bits", "inconsistent"), its closest code and cell contrast: why a marker is not found.
  • refine_corners(image, corners, win_size=5) — standalone cornerSubPix.
  • PoseSmoother(process_noise, measurement_noise, mode="kalman"|"ema") — temporal pose smoothing.
  • draw(..., inplace=False) — draw on a copy.

Errors: wrong dtype / non-contiguous input → TypeError; unsupported shape, empty frame, invalid config or parameters, invalid intrinsics → ValueError.


How it is fast

  • Fused adaptive threshold. Separable box sums (horizontal first, uint16, ring buffer + running vertical window), reproducing OpenCV's fixed-point / float rounding of the mean exactly, written straight into a zero-bordered buffer together with 8-neighbour occupancy masks. Horizontal sums come from a SIMD prefix scan (AVX2 / NEON). Row stripes run in parallel.
  • Contour tracing. Suzuki–Abe border following identical to cv::findContours(RETR_LIST, CHAIN_APPROX_NONE) (sequential), with SIMD start detection, one mask load per step and no allocation for contours below the minimum size. Isolated speckle pixels (most contours in noisy frames) are skipped without tracing. Row bands are traced in parallel: each band keeps its own pixel labels and a contour is kept by the band holding its start, the ownership rule also used by OpenCV's data-race-free TRUCO tracer; the test-suite checks the result against findContours on millions of contours, including bands one row high. It is 2–3× faster than OpenCV 5.0's own parallel findContours at every thread count (1080p, 12 threads: 0.31 vs 0.72 ms).
  • Polygon fit + decoding in parallel per contour, with exact replicas of OpenCV 4's and OpenCV 5's approxPolyDP (they differ) and no per-frame heap traffic. A quad the reference reader rejects is read again with each cell sampled exactly at its centre (the reference sampler is up to a pixel off, a whole cell for far markers).
  • Inner points. FAST runs only around the marker; keypoint filtering and matching use grids instead of O(n²) scans.
  • Tracking (FractalTracker): region-of-interest search around the previous detection, after Romero-Ramirez et al., Speeded up detection of squared fiducial markers (2018). Their other lever — shrinking the image to the previous marker size — was tested and rejected: it raised the corner error from 0.39 to 1.3 px.
  • Zero-copy input, GIL released, a detector pool for detect_batch.

Intentional differences from the reference detector: the second bit reading finds more levels (far, blurred, steeply tilted markers) — levels the reference finds are unchanged; a frame where nothing is found is thresholded again with a large block (close_pass, markers seen from very close); levels that do not fit the larger levels are dropped (inconsistent_ids); with with_inner_points=True, the FAST response threshold is computed over the marker's neighbourhood instead of the whole frame. Reading with a prior is off unless asked for.


Changelog

See CHANGELOG.md.

Citation

If you use this in research, please cite the original work:

  • F. J. Romero-Ramirez, R. Muñoz-Salinas, R. Medina-Carnicer, "Fractal Markers: A New Approach for Long-Range Marker Pose Estimation Under Occlusion", IEEE Access, 7, 2019.
  • F. J. Romero-Ramirez, R. Muñoz-Salinas, R. Medina-Carnicer, "Speeded up detection of squared fiducial markers", Image and Vision Computing, 76, 2018.

License

Apache-2.0. The vendored fractal detector is © its authors and used under its terms; see third_party/ and PATCHES.md.

Metadata

Release files for nanofractal 0.7.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nanofractal 0.7.4
File Size Uploaded Provenance Actions
nanofractal-0.7.4.tar.gz 219.9 kB With provenance Details for nanofractal-0.7.4.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for nanofractal 0.7.4
File Actions
nanofractal-0.7.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for nanofractal-0.7.4-cp314-cp314-win_amd64.whl
nanofractal-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for nanofractal-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
nanofractal-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details for nanofractal-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
nanofractal-0.7.4-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details for nanofractal-0.7.4-cp314-cp314-macosx_11_0_x86_64.whl
nanofractal-0.7.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for nanofractal-0.7.4-cp314-cp314-macosx_11_0_arm64.whl
nanofractal-0.7.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for nanofractal-0.7.4-cp313-cp313-win_amd64.whl
nanofractal-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for nanofractal-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
nanofractal-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for nanofractal-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
nanofractal-0.7.4-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details for nanofractal-0.7.4-cp313-cp313-macosx_11_0_x86_64.whl
nanofractal-0.7.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for nanofractal-0.7.4-cp313-cp313-macosx_11_0_arm64.whl
nanofractal-0.7.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for nanofractal-0.7.4-cp312-cp312-win_amd64.whl
nanofractal-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for nanofractal-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
nanofractal-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for nanofractal-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
nanofractal-0.7.4-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details for nanofractal-0.7.4-cp312-cp312-macosx_11_0_x86_64.whl
nanofractal-0.7.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for nanofractal-0.7.4-cp312-cp312-macosx_11_0_arm64.whl
nanofractal-0.7.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for nanofractal-0.7.4-cp311-cp311-win_amd64.whl
nanofractal-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for nanofractal-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
nanofractal-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for nanofractal-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
nanofractal-0.7.4-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details for nanofractal-0.7.4-cp311-cp311-macosx_11_0_x86_64.whl
nanofractal-0.7.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for nanofractal-0.7.4-cp311-cp311-macosx_11_0_arm64.whl
nanofractal-0.7.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for nanofractal-0.7.4-cp310-cp310-win_amd64.whl
nanofractal-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for nanofractal-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
nanofractal-0.7.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for nanofractal-0.7.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
nanofractal-0.7.4-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details for nanofractal-0.7.4-cp310-cp310-macosx_11_0_x86_64.whl
nanofractal-0.7.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for nanofractal-0.7.4-cp310-cp310-macosx_11_0_arm64.whl
nanofractal-0.7.4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for nanofractal-0.7.4-cp39-cp39-win_amd64.whl
nanofractal-0.7.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for nanofractal-0.7.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
nanofractal-0.7.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for nanofractal-0.7.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
nanofractal-0.7.4-cp39-cp39-macosx_11_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 11.0+ x86-64 Details for nanofractal-0.7.4-cp39-cp39-macosx_11_0_x86_64.whl
nanofractal-0.7.4-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for nanofractal-0.7.4-cp39-cp39-macosx_11_0_arm64.whl

Total release size: 216.4 MB

Release files / nanofractal-0.7.4.tar.gz

Download URL nanofractal-0.7.4.tar.gz
Size 219.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dfb11512fe1a8ef9972ccff9c3177f3d35d4fe36fc926c0ff8f51b2f0f7a60b9
BLAKE2b-256 checksum
How to use checksums
f1edc8f06782563dd5b54ca6af2cb6d4466e7f1fb0e7598c5b52287bef8f98e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp314-cp314-win_amd64.whl

Download URL nanofractal-0.7.4-cp314-cp314-win_amd64.whl
Size 24.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
a6a978004d48c7739c15f4e30fc6489256916b5fcfc82f359d7568d6362d7cdf
BLAKE2b-256 checksum
How to use checksums
3169b6761ebf5524638f57747a4d7c5931729f1c463cb32a268b25c64c380eeb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL nanofractal-0.7.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7c6cdf552213db8ba8772a839502c0722729ecd8303a03171cf724cece8f66af
BLAKE2b-256 checksum
How to use checksums
f177ecaa048d1523c5757e1cfae5929d8d03a062a92bd4c37064687318a9daf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL nanofractal-0.7.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 MB
Tags CPython 3.14 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e83992c8d654b0efdd8af1ee66df39d4c17c4a11e6a2c55c62cd55ba21c05eed
BLAKE2b-256 checksum
How to use checksums
0694d91e9487bab1e1061498ede673acc1de2cc91b8944242cee6a42d9fd79eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp314-cp314-macosx_11_0_x86_64.whl

Download URL nanofractal-0.7.4-cp314-cp314-macosx_11_0_x86_64.whl
Size 3.5 MB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
51506d6adddbf230258d9b1f62aa6dddffd98874c61149a3ec50e57533f61483
BLAKE2b-256 checksum
How to use checksums
3a0fde60e07cf7649ebcfb4ba39332c9bce21a1fc38d044f650c4b19e1fcdc58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL nanofractal-0.7.4-cp314-cp314-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
26c6c127e89f9c7b90a54a9aa24b68b5142be8289a9b2c16974038bfd9276ebb
BLAKE2b-256 checksum
How to use checksums
41c669db092e5cc8f978bcc210efa8242f33d76391d17a1b90294c5a8246e06c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp313-cp313-win_amd64.whl

Download URL nanofractal-0.7.4-cp313-cp313-win_amd64.whl
Size 24.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
931d3133089d95d6d7d30ee2f658b94a87019d066be56d8d7d4710839c212567
BLAKE2b-256 checksum
How to use checksums
e341a2e8db2eaed6e44b451c1ab0b00a15222d29e2b5735d8242b9f6600fc4e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL nanofractal-0.7.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6424f7ddc2866596ea81288d2e0cd372a010193dcf0d4da49ea78c1c66fe819c
BLAKE2b-256 checksum
How to use checksums
a27a0732f47a7d126693ed91a621ebf1fb587e63697644760ffe08d332bcf99c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL nanofractal-0.7.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 MB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
66e3268fc5d559ef1dbbbd0a87f847625d0cffd1ba06ab745a339ecdb6d53926
BLAKE2b-256 checksum
How to use checksums
5253d36655b3b8ff47a1c7935d2e4bb8f90d670dc952d974d18050e287fce89d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp313-cp313-macosx_11_0_x86_64.whl

Download URL nanofractal-0.7.4-cp313-cp313-macosx_11_0_x86_64.whl
Size 3.5 MB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
278554e385d6de8de06f608363d681bfa82e7f0786c5c1b1e7c30f82bb795657
BLAKE2b-256 checksum
How to use checksums
9187c3afe1ed1cd3d071f0dd13a5438f4dd5e88898bfee1fb09a9ddb4e483832
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL nanofractal-0.7.4-cp313-cp313-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c52d966939053ef96b9de25d98f429d17ed5c87e28ac9bcf63eaa6d6e391ad84
BLAKE2b-256 checksum
How to use checksums
e982b4d08d4da17c4613cf23f6239167db2b2d87451256c56a0034a7b5dea964
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp312-cp312-win_amd64.whl

Download URL nanofractal-0.7.4-cp312-cp312-win_amd64.whl
Size 24.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
bc3553ef9088b0db24af207b5cd9e596ed7cacadfd4ace3ca1a17a43bdf14280
BLAKE2b-256 checksum
How to use checksums
cd60a2cf1dbfa40fac3b11b41f3a0a305c218d4d2b99edb8921b9203cb29f3a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL nanofractal-0.7.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9b998bf3526ae7d3c56c738fd27f72cc2e604a436b13ebab10c01a6bcc86512b
BLAKE2b-256 checksum
How to use checksums
cb60c669bd47f7e57fe3d13be3b91e43442219c749103ae2d0b52a5654d760d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL nanofractal-0.7.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 MB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
35658fc4080b2b8fba4c33cd2f272a083444e76c885efeaf20debf380294c293
BLAKE2b-256 checksum
How to use checksums
544643d5061136118ef5958d795f965352f4fce6809bedcf03649b70e40f723c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp312-cp312-macosx_11_0_x86_64.whl

Download URL nanofractal-0.7.4-cp312-cp312-macosx_11_0_x86_64.whl
Size 3.5 MB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
bfdfd8e34a01749cc91928288d539ddd11be5b66f000117c20215fcbf8ff6b3d
BLAKE2b-256 checksum
How to use checksums
4bfae3067e14c1dc523736484a9b6d0bf75120236d79e3a45c1b13983607be19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL nanofractal-0.7.4-cp312-cp312-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
803585192b8fa2be3602e84e5d0436f85a01c99f6a956fc441b5520d7a8e7e6e
BLAKE2b-256 checksum
How to use checksums
ed902e64df3e5ab20a30a9cbcef64dde91957eb93eea42459ad0d5304d84a1f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp311-cp311-win_amd64.whl

Download URL nanofractal-0.7.4-cp311-cp311-win_amd64.whl
Size 24.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a4ff61c04401faa30ad3ef5fd27992fb531a6c0104f075855f19f89eca52a5fd
BLAKE2b-256 checksum
How to use checksums
4aab81909643c53120f7acbc90432f1aa1a1b55a5c0cfed7f29b2ca6f09eebfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL nanofractal-0.7.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
811ca34295dd9ddcde10adc26d91cca773e494fcc5dd1528f717c9489bd8925b
BLAKE2b-256 checksum
How to use checksums
20bdcabc9cecac5d0a75b3c8e4670c51a28abe683b4596a81fa8e8d5434a0dcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL nanofractal-0.7.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 MB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0accc5af085c87f2aff8ed5f09ad3fdd5b05e99138ba1942715d7761dabf449f
BLAKE2b-256 checksum
How to use checksums
44c46b3685f1565ced809a0d28876c58d2fd7d9da261e2c9bf7c950f2a5c9926
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp311-cp311-macosx_11_0_x86_64.whl

Download URL nanofractal-0.7.4-cp311-cp311-macosx_11_0_x86_64.whl
Size 3.5 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
c714dd676f2e500b7b76b7b3067046992e09f9d7252c913ce55901009d76a241
BLAKE2b-256 checksum
How to use checksums
e96255c5f117525584389651e1e448c81eb46759710778d834b2f64ebb306cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL nanofractal-0.7.4-cp311-cp311-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0fd0bb95b4c122b32dcfd6c1eb49e33bf23358cc5e1e7cfc657463316ab21dde
BLAKE2b-256 checksum
How to use checksums
75f71c8e68c753bd1f873dc7591302d2457bf479d4bbf7634a4e6c2470682b95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp310-cp310-win_amd64.whl

Download URL nanofractal-0.7.4-cp310-cp310-win_amd64.whl
Size 24.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
65a905637b6c5a687f443bd0ad98c608fe075f3ee97e958ed013ed5f46cbe2d6
BLAKE2b-256 checksum
How to use checksums
69b219eb120daf8628c459f61c1237a5d36ad5cf3dba220eab33457fd4af738d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL nanofractal-0.7.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cbc004226e544f06772d817c15efbca527c851c858cb3d15c7a39ed4049a9a6c
BLAKE2b-256 checksum
How to use checksums
d3981626a2b231617c0fac474461c59f6c51eed0a78f55ec428ee9f1c6349c5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL nanofractal-0.7.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 MB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0a3526dcd70e74490ed2c2840cf09b28df4fa16e4ae3bbd2e9c0c77ded67e693
BLAKE2b-256 checksum
How to use checksums
da7ef8832763d966b41b18c7c65b30078e90537d917bbe6f83496d4115fa3a24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp310-cp310-macosx_11_0_x86_64.whl

Download URL nanofractal-0.7.4-cp310-cp310-macosx_11_0_x86_64.whl
Size 3.5 MB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
6830e1fe33699899f1b8c8b50ddfb0b15b715c5c54a1623a961825ba13553bab
BLAKE2b-256 checksum
How to use checksums
b3d0541d595af7479498d330eb1a0fe60487232959ccd717f9a6e67c2cb68402
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL nanofractal-0.7.4-cp310-cp310-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
74ac9571baa3396bb223fbb16fff7bf305e93b0ccc594d4587a9caa184ea327a
BLAKE2b-256 checksum
How to use checksums
72b6ce22ff4806d8459f1a3916eef75a06309516b83d6b6a87c3cff27d0d1737
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp39-cp39-win_amd64.whl

Download URL nanofractal-0.7.4-cp39-cp39-win_amd64.whl
Size 23.9 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
7ed5e1e99e0010bfcfacd46a620000953ee5e54d2e187f7daf3265aa983b9cf7
BLAKE2b-256 checksum
How to use checksums
fa5902071afb0d2e1e4ae901c8a9f61f739e5934310a31cccff93b3108f2b94c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL nanofractal-0.7.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
944f8f583c51c97c41f135c5c40be2e7c8d14b24ecc4cc4af6b5e8b98fb49882
BLAKE2b-256 checksum
How to use checksums
65410c6b7f273ccf2558cca4392f3627bed4b4f630a0b59fca77b30cba0044f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL nanofractal-0.7.4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.5 MB
Tags CPython 3.9 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1589e4b8e8a3bc2408abc8e6a11d7d36252c3b55132771b495ec7294d2ea0439
BLAKE2b-256 checksum
How to use checksums
e8fe35c16e745acf56c32f642c8237a03b85dc89a12efa9c0d4bff7661511d1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp39-cp39-macosx_11_0_x86_64.whl

Download URL nanofractal-0.7.4-cp39-cp39-macosx_11_0_x86_64.whl
Size 3.5 MB
Tags CPython 3.9 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
7da59545f685984e298d11d9d5d3b1eccdccc0a0e06db1f655c3b7cff2c548c9
BLAKE2b-256 checksum
How to use checksums
a7fea92f9cd5c86848a224bab06fa36e0e20c0652cfba457e01f6620ecde34c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / nanofractal-0.7.4-cp39-cp39-macosx_11_0_arm64.whl

Download URL nanofractal-0.7.4-cp39-cp39-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
80d43084b3491183e5ba3dc9cfe117c091d4777a5ed3c1d5ef322b3bc1584963
BLAKE2b-256 checksum
How to use checksums
fce54909096d4aa79f3d25d3e31301921cb7797af0d3a6347db157dac14bdea8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Security for nanofractal 0.7.4

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 31 files in this release have been uploaded with provenance metadata.

Select from 31 files

Attestation for nanofractal-0.7.4.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 Nov 3, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page