Skip to main content

PyPI version tests codecov DOI

PyPRF

A free & open source python package for population receptive field (pRF) analysis. With this package you can present visual stimuli for a retinotopic mapping fMRI experiment, and perform a pRF analysis on the fMRI data.

PyPRF has two parts, which are installed and used separately:

Part What it does Where it runs What you need
1. Stimulus presentation Presents the retinotopic mapping stimuli in the MRI scanner. The stimulus computer of the MRI lab. PsychoPy and a folder with two scripts. You do not need to install the pyprf package.
2. Analysis Estimates a pRF for each voxel, and creates retinotopic maps. Your analysis computer. pip install pyprf

The stimuli consist of bars at different locations and orientations, filled with flickering black and white checkerboards. It is important that the participant fixates throughout the experiment. Therefore, there is a central fixation task: the fixation dot occasionally changes its colour, and the participant presses a button in response. At the end of the presentation, the participant's hit rate is provided as feedback.

A pRF is estimated for each voxel (see [1]). The pRF model is a 2D Gaussian; the free parameters are the Gaussian's x- and y-position, and its width (SD). This rather simple pRF model is best suited for early visual cortex (higher cortical areas may require more complex models).

1. Stimulus presentation

The stimulus presentation consists of two scripts that you open and run in PsychoPy. On purpose, they are not part of the pyprf python package: stimulus computers in MRI labs are often shared, and it is easiest to copy a folder and run the scripts from the PsychoPy app.

Installation

  1. Install PsychoPy (the standalone installer is easiest). The stimulus presentation was tested with PsychoPy 2026.2.4.
  2. Download pyprf-stimulus-presentation-v<version>.zip from the releases page (below "Assets"), copy it to the stimulus computer, and unzip it. (Alternatively, clone this repository and copy the folder pyprf/stimulus_presentation.)

The folder looks like this. Please do not rename or move the subfolders, the scripts find the design matrices and the log folder relative to their own location.

stimulus_presentation/
├── code/
│   ├── create_design_matrix.py   <- step 1: create a design matrix
│   └── stimulus.py               <- step 2: present the stimuli
├── design_matrices/              <- design matrices are saved here
│   ├── Run_01.npz                   (examples, see below)
│   ├── Run_02.npz
│   └── Run_03.npz
└── log/                          <- log files & stimulus logs are saved here

Step 1: Create a design matrix

The design matrix specifies the experimental design: which stimulus is shown on each fMRI volume, and when the target events of the fixation task occur. There is one stimulus per fMRI volume, so the design matrix is made for a specific volume TR.

Note: The example design matrices Run_01 to Run_03 were made for a TR of 2.079 s (227 volumes each). If your fMRI sequence has a different TR, you need to create your own design matrices. Because the order of the stimuli is randomised, you can create a different design matrix for each run of your experiment.

Open code/create_design_matrix.py in PsychoPy (Coder view) and click Run (or run python create_design_matrix.py in a terminal). Set the parameters in the dialog:

  • Output file name: By default, the first unused name (e.g. Run_04). If a design matrix with this name already exists, you can choose a different name, or overwrite the existing one.
  • TR [s]: The volume TR of your fMRI sequence.
  • Number of bar orientations: 4 (horizontal, vertical, and two diagonals), or 2 (horizontal & vertical).
  • Number of bar positions on x-axis / y-axis: Number of bar positions along the width / height of the screen.
  • Number of blocks: How often each combination of bar position & orientation is shown.
  • Number of rest trials: Number of additional rest periods (3 volumes each) at random times.
  • Inter-trial interval for targets [s]: Average time between target events (colour changes of the fixation dot).
  • Initial / final rest period [volumes]: Rest (fixation only) at the beginning and end of the run.
  • Full screen: If True, the bars cover the entire screen. If False, they cover a central square (with a side length equal to the screen height).
  • Stimulus contrasts: One or two contrast levels of the bars.

After the design matrix is saved, a dialog shows its number of volumes and duration. Your fMRI sequence has to acquire (at least) this number of volumes.

Step 2: Present the stimuli

Open code/stimulus.py in PsychoPy and click Run (or run python stimulus.py in a terminal).

  • Design matrix: Choose a design matrix. The list shows the TR and the number of volumes of each design matrix, please check that they match your fMRI sequence.
  • Logging mode: False during the experiment (see step 3).
  • Scanner trigger key: The key that the scanner sends as trigger pulse (see below).
  • Response key: The key that the participant presses after a target event.
  • Width of monitor [cm], Distance between observer and monitor [cm], Width / Height of monitor [pixels]: The properties of the screen in the scanner.

After you click OK, the fixation dot is shown, and the presentation waits for the trigger from the scanner. The presentation starts with the first trigger.

Key Default
Scanner trigger key 5 Starts the stimulus presentation. The MRI scanner sends a key press at the start of each volume. Which key depends on your MRI lab (common are 5 and t).
Response key 1 The participant presses this key when the fixation dot changes its colour.
e + x Abort the presentation (keep e pressed, and press x).

Keys are specified with their PsychoPy key names, for instance 5, t, or num_5 (number pad).

A log file of the presentation, including the participant's hits & misses, is saved in the log folder.

Step 3: Create the stimulus log for the analysis

For the analysis, you need a log of the stimuli, i.e. an image of the visual stimulus on each fMRI volume. To create it, run stimulus.py again with Logging mode set to True, for each design matrix that you used, with the same screen settings as in the experiment. (This does not need a scanner trigger, and runs faster than the experiment. Don't use logging mode during an experiment.)

The stimulus log is saved as PNG images (one per volume) in log/<design matrix>_frames/, e.g. log/Run_01_frames/frame_001.png. Copy these folders to your analysis computer.

Please check that the bar stimuli are visible in the PNG images. (On some virtual or remote displays, the screen content cannot be captured, and the images are empty.)

2. Analysis

Installation

Install pyprf from PyPI, preferably in a virtual environment:

pip install pyprf

pyprf requires Python 3.11 or newer. All dependencies are installed automatically.

Configuration

The analysis parameters are set in a config file. Copy the example config file and adjust it to your data (see the comments in the file). The most important parameters are:

  • lstPathNiiFunc: The fMRI data (nii files, one per run).
  • lstPathPng: The stimulus logs from step 3 of the stimulus presentation (one per run, in the same order as the fMRI data), e.g. ['/my_data/Run_01_frames/frame_', '/my_data/Run_02_frames/frame_'].
  • strPathNiiMask: A brain mask (the pRF analysis is only performed within the mask).
  • varTr: The volume TR.
  • varExtXmin, varExtXmax, varExtYmin, varExtYmax: The extent of the stimulated area of the screen, in degrees of visual angle from the fixation point. In full screen mode, this is the entire screen; otherwise it is a central square with a side length equal to the screen height.
  • strVersion: 'cython' (recommended, considerably faster) or 'numpy'.
  • varPar: Number of processes to run in parallel.
  • strPathOut: The basename of the output files.

On Windows, please use forward slashes in paths (e.g. 'C:/my_data/run_01.nii.gz').

Run the analysis

pyprf -config /path/to/config.csv

The results are saved as nii files, e.g. <strPathOut>_x_pos.nii.gz, _y_pos, _SD (pRF size), _R2, _polar_angle, _eccentricity, and the parameter estimates _PE_01 (one per stimulus contrast).

If the data do not fit into memory, you can switch on the hdf5 mode (lgcHdf5 = True). The data are then kept on disk instead of in memory, which is slower.

Upgrading from pyprf 2

  • pyprf 3 requires Python 3.11 or newer.
  • The tensorflow (GPU) version of the analysis has been removed. Please set strVersion = 'cython' in your config file (if you used strVersion = 'gpu').
  • The analysis results are unchanged (this is checked by the tests).
  • Design matrices in full screen mode: previously, one of the horizontal bar positions was outside of the screen (i.e. no stimulus was visible on these volumes). This has been fixed, so new design matrices are slightly shorter (with the default settings, 223 instead of 227 volumes).

Contributions

Contributions are welcome! Please see CONTRIBUTING.md for how to set up a development environment and run the tests.

References

This application is based on the following work:

[1] Dumoulin, S. O. & Wandell, B. A. (2008). Population receptive field estimates in human visual cortex. NeuroImage 39, 647–660.

If you use pyprf, please cite it via its Zenodo DOI.

Support

Please use the GitHub issues for questions or bug reports.

License

The project is licensed under GNU General Public License Version 3.

Release files for pyprf 3.0.0

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

Source distribution (sdist)

Source distribution for pyprf 3.0.0
File Size Uploaded
pyprf-3.0.0.tar.gz 63.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyprf 3.0.0
File
pyprf-3.0.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pyprf-3.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
pyprf-3.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
pyprf-3.0.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
pyprf-3.0.0-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
pyprf-3.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyprf-3.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
pyprf-3.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
pyprf-3.0.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pyprf-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
pyprf-3.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyprf-3.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
pyprf-3.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
pyprf-3.0.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pyprf-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
pyprf-3.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyprf-3.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
pyprf-3.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
pyprf-3.0.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pyprf-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 19.2 MB

Release files / pyprf-3.0.0.tar.gz

Download URL pyprf-3.0.0.tar.gz
Size 63.9 kB
Tags Source
SHA-256 checksum
How to use checksums
54c382621ee4f742c1da095f970e4334ad244b6e4789da1ecd5837c1f5907c75
BLAKE2b-256 checksum
How to use checksums
8c73914be47bb7ba8f8437505e67bc61eca98dc534d3f779cea68bad5510f937
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp314-cp314-win_amd64.whl

Download URL pyprf-3.0.0-cp314-cp314-win_amd64.whl
Size 820.2 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
fb43deb3867f59bdd3f1a21d6dd8a651203ee88f76da56dae3e03ba9ade0ba38
BLAKE2b-256 checksum
How to use checksums
59b6cb98ef3cf8ed57a445bcc92e1b35a31282b1f2e610f7752525019aa8fa19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyprf-3.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
927638acad68f06e675e8881fd843e2aacd655cb2c2272a1761a82333cf84d99
BLAKE2b-256 checksum
How to use checksums
fbdba2258f4b4ba4c01d2bbea9f13a1e4373a99ee8b11082d422ef71f4a46b10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pyprf-3.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8346c9fdbc92cf6ea1a128684d4bb45210e5f2dfe8a0f21bfe6e0ef141f6de54
BLAKE2b-256 checksum
How to use checksums
e187c7bbebedcb9669914f06dbefe97ebca7e67fdfa080ce20adf806916d8b68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL pyprf-3.0.0-cp314-cp314-macosx_11_0_arm64.whl
Size 324.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
745efcf77901cffbba20d8f842172740d6e9fa778c4e2890a1a2c6b0cfa0d8a2
BLAKE2b-256 checksum
How to use checksums
246b35c92cba26248c80bbd302697a2f0d9b3f2fe606d67f4cc268ce2812df2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp314-cp314-macosx_10_15_x86_64.whl

Download URL pyprf-3.0.0-cp314-cp314-macosx_10_15_x86_64.whl
Size 321.1 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
31ee2deeaeb466f729a69ab66caf1a290085556f04ea9e1300942afe513ad887
BLAKE2b-256 checksum
How to use checksums
f0bd18189f24827300e4354bf6125ebf130686077a9417719feabb48c765e2f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp313-cp313-win_amd64.whl

Download URL pyprf-3.0.0-cp313-cp313-win_amd64.whl
Size 818.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1daff0bfe7365042d5c5a42301586263517808ec0cd2b311a8bce97136a11fc1
BLAKE2b-256 checksum
How to use checksums
6ba20edfd86226b723a224cf754df12e191cd3ebdcdf63f0837ff3f49747a34b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyprf-3.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6f88bc54b0a1d0d247ec805a76aba1d25ff58736030e397b4decdf19bfa7582f
BLAKE2b-256 checksum
How to use checksums
da53641922b621598e50ded84d4d44bbd95e9002f173ea7a2e2003fb7e8a5071
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pyprf-3.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
25258fc9ef7098f5c4f7b986df3c5d3ae12bbe4862c65fb830518481e17d899e
BLAKE2b-256 checksum
How to use checksums
fd47e0042dd333570724fe4f7c7ba34c7e0e8317396e0dd1616f472f3a9f589e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL pyprf-3.0.0-cp313-cp313-macosx_11_0_arm64.whl
Size 322.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b847a455cf6e7a6e780eb4c9d94862621ca5d4384203e39f19bd444e8cb17f82
BLAKE2b-256 checksum
How to use checksums
40883063a002dd1e2fb1f0b70b6fad8a6bc9b03cbbb0066e357180e54ef697db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL pyprf-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 320.8 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
e4c450ba2a5b7a52dd272eb0cc1d95eb8b0cd9568b2db52b141b9ebbb728bb8f
BLAKE2b-256 checksum
How to use checksums
9d0a47e4f9a527a35a84f61f6e2cf616037f8244bc1c50ff2841797179f50b53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp312-cp312-win_amd64.whl

Download URL pyprf-3.0.0-cp312-cp312-win_amd64.whl
Size 819.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e006efd70bab5e1f2ed1ab5b5bfaae8555a41083f9fb7d61f2334d63af1e6535
BLAKE2b-256 checksum
How to use checksums
14111d410185aca9e046f0b923d642625ea2c27278f8097401e82e4f25aeb4aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyprf-3.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
91cad41e1f9e400f1904a0236df2b8992e244ddac47fed569d2c8db19982b256
BLAKE2b-256 checksum
How to use checksums
d74f416f82da83d2f19b464df7907128f7ea78ec6e99435ee4dd1e64a71b89dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pyprf-3.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.7 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a38d886bb52eb044c52da84ba6cc4e1022ed3249983a93960612a39c81b735bd
BLAKE2b-256 checksum
How to use checksums
110fd3bc9d58cd1afa8dcd421f2b79ac6349bb6658e8b1f80db9212b5a7aae6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL pyprf-3.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 324.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7b01a4f39dba34809badf37f70b7d7cdf02f8e591632f5bc86452f3f6431862f
BLAKE2b-256 checksum
How to use checksums
c2372a139f8c05aa9b7a03fe03049ecfe9596bf739558175c5e945fc894f0a9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL pyprf-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 321.8 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
a8032dd15adae4aaab38d73eedea019c547e64cb78e4f967be91b7309e3a2702
BLAKE2b-256 checksum
How to use checksums
d321180640fbc528b7a2c2c9e3e235589df2e81904c09aa06848fe8ba3a83c01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp311-cp311-win_amd64.whl

Download URL pyprf-3.0.0-cp311-cp311-win_amd64.whl
Size 813.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
48213f28d7b7c39409ded59743c13b37e1f2b4b740601efdb64d38344338a204
BLAKE2b-256 checksum
How to use checksums
2033f04e01adc53e80174d4ccd53fefa364ae6151bd2692b1849887ed71f9f3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL pyprf-3.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c2477057e20cc95a59a1bae95349984e650bf240d05469c079d79097f4400cb9
BLAKE2b-256 checksum
How to use checksums
a157c70e398bfeba15257873bf141196239f12d034e483e1f329bc1d7a3d4214
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL pyprf-3.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4ff8b5ccadb0f147db514cb26deb8203fd8d46625afdc477a37db1b37a8936ae
BLAKE2b-256 checksum
How to use checksums
55ee5dd57e6db67a5440d6c4b91cc86ddf6318642870126f4e342a26f8f08c62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL pyprf-3.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 324.6 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a61d9443de4113b642f4c5de5209e97ceeb6985f3592606a1e910aee03aeb2b0
BLAKE2b-256 checksum
How to use checksums
b95ef07911be85c374419ae874d3cb1127342ec0d0547244628bdfc975b0e621
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / pyprf-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL pyprf-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 319.7 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
f7a171a29f2d50a59c94a1912e85246d92905df51b07630016c1a9f7fc2a0e2f
BLAKE2b-256 checksum
How to use checksums
16de83ead7e797b84efa5208cf838f168efe2641dfa256e279bcba55439e5313
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.0.0 This release

21 release files

2.0.0

1 release file

1.3.13

1 release file

1.3.12

1 release file

1.3.11

1 release file

1.3.10

1 release file

1.3.9

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.1.0

1 release file

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