GPy
The Gaussian processes framework in Python.
- GPy homepage
- Tutorial notebooks
- Multi-output / coregionalized regression notes:
doc/source/tuto_coregionalized.rst(also on Read the Docs after the next docs build) - Community Q&A: GitHub Discussions
- Developer documentation documentation (devel branch)
Status
| Branch | GitHub Actions | Codecov |
|---|---|---|
Default branch (devel) |
||
Deployment branch (deploy) |
What's new:
From now on we keep track of changes in the CHANGELOG.md. If you want your changes to show up there follow the guidelines. In particular tag your commits by the gitchangelog commit message format.
Packaging uses Poetry (CIP-0003). End users
still install with pip install gpy from PyPI wheels. Contributors should
use Poetry for editable installs and a locked environment (poetry.lock).
Contributing to GPy
We welcome any contributions to GPy, after all it is an open source project. We use the GitHub feature of pull requests for contributions.
For an in depth description of pull requests, please visit https://help.github.com/articles/using-pull-requests/ .
Steps to a successful contribution:
- Fork GPy: https://help.github.com/articles/fork-a-repo/
- Make your changes to the source in your fork.
- Make sure the guidelines are met.
- Set up tests to test your code. We are using unittests in the testing subfolder of GPy. There is a good chance that there is already a framework set up to test your new model in model_tests.py or kernel in kernel_tests.py. have a look at the source and you might be able to just add your model (or kernel or others) as an additional test in the appropriate file. There is more frameworks for testing the other bits and pieces, just head over to the testing folder and have a look.
- Create a pull request to the devel branch in GPy, see above.
- The tests will be running on your pull request. In the comments section we will be able to discuss the changes and help you with any problems. Let us know if there are any in the comments, so we can help.
- The pull request gets accepted and your awesome new feature will be in the next GPy release :)
For any further questions/suggestions head over to the issues section in GPy.
Pull Request Guidelines
- Lint and format with Ruff (CIP-0005). CI runs
ruff check GPyandruff format --check GPyusing the select set inpyproject.toml. Recommended local setup:pip install pre-commit && pre-commit install(hooks in.pre-commit-config.yaml). Or runruff check GPy/ruff format GPyyourself. - Separate commits per smallest concern.
- Each functionality/bugfix commit should contain code, tests, and doc.
- We are using gitchangelog to keep track of changes and log new features. So if you want your changes to show up in the changelog, make sure you follow the gitchangelog commit message format.
Support and questions to the community
Ask questions using the issues section.
Updated Structure
We have pulled the core parameterization out of GPy. It is a package called paramz and is the pure gradient based model optimization.
If you installed GPy with pip, just upgrade the package using:
$ pip install --upgrade gpy
For a developmental install from a clone, use Poetry (see below).
Supported Platforms:
Python 3.9 and higher (binary wheels for 3.11–3.14; 1.15.0 is the last release that declares 3.9/3.10)
Citation
@Misc{gpy2014,
author = {{GPy}},
title = {{GPy}: A Gaussian process framework in python},
howpublished = {\url{http://github.com/SheffieldML/GPy}},
year = {since 2012}
}
Pronounciation:
We like to pronounce it 'g-pie'.
Getting started: installing with pip
We are requiring a recent version (1.3.0 or later) of scipy and thus, we strongly recommend using the anaconda python distribution. With anaconda you can install GPy by the following:
conda update scipy
Then potentially try,
sudo apt-get update
sudo apt-get install python3-dev
sudo apt-get install build-essential
conda update anaconda
And finally,
pip install gpy
We've also had luck with enthought. Install scipy 1.3.0 (or later) and then pip install GPy:
pip install gpy
If you'd like to install from source, or want to contribute to the project (i.e. by sending pull requests via github), read on.
Contributor install (Poetry)
Requires Poetry 1.8+ (2.x recommended).
git clone https://github.com/SheffieldML/GPy.git
cd GPy
poetry install --with dev
poetry run pytest GPy/testing
poetry.lock pins the contributor environment for reproducibility. PyPI /
pip install gpy installs do not use the lockfile.
You can also build and install a local wheel without Poetry at runtime:
poetry build
pip install dist/gpy-*.whl
Plotting (optional)
Matplotlib and plotly are optional. Core modelling works with a plain
pip install gpy. For plots:
pip install 'gpy[plotting]'
If the configured library is missing, GPy imports successfully and continues without plotting (see #1209).
Wheels and Apple Silicon / Linux aarch64
Release CI publishes:
- manylinux wheels for x86_64 and aarch64 (Cython extensions built in)
- macOS wheels from
macos-latest(Apple Silicon) - Windows wheels
If no wheel matches your platform, pip builds from the sdist (needs a C
compiler and Cython). Contributor installs via Poetry compile extensions locally
on any architecture CI already tests (ubuntu, windows, macos including
arm64).
Troubleshooting installation problems
If you're having trouble installing GPy via pip install gpy here is a probable solution:
git clone https://github.com/SheffieldML/GPy.git
cd GPy
git checkout devel
poetry install --with dev
pytest .
Direct downloads
Saving models in a consistent way across versions:
As pickle is inconsistent across python versions and heavily dependent on class structure, it behaves inconsistent across versions. Pickling as meant to serialize models within the same environment, and not to store models on disk to be used later on.
To save a model it is best to save the m.param_array of it to disk (using numpy’s np.save).
Additionally, you save the script which creates the model.
In this script you can create the model using initialize=False as a keyword argument and with the data loaded as normal.
Then call m.initialize_parameter() and load the saved values with model slice assignment m[:] = loaded_params (not m.param_array[:] = …).
Bare writes into param_array skip paramz observers, so lengthscales, predictions and the objective can stay at their defaults even though m.param_array prints the loaded numbers (see #1217).
Be aware that up to the final update_model(True) the model is in an inconsistent state and cannot be used to produce any results.
# let X, Y be data loaded above
# Model creation:
m = GPy.models.GPRegression(X, Y)
m.optimize()
# 1: Saving a model:
np.save('model_save.npy', m.param_array)
# 2: loading a model
# Model creation, without initialization:
m_load = GPy.models.GPRegression(X, Y, initialize=False)
m_load.update_model(False) # do not call the underlying expensive algebra on load
m_load.initialize_parameter() # Initialize the parameters (connect the parameters up)
m_load[:] = np.load('model_save.npy') # Load the parameters
m_load.update_model(True) # Call the algebra only once
print(m_load)
For Admins and Developers:
Running unit tests:
With Poetry (recommended for contributors):
poetry install --with dev
poetry run pytest GPy/testing
Coverage (uses .coveragerc; also uploaded from CI on Ubuntu / Python 3.12):
poetry run pytest GPy/testing --cov=GPy --cov-report=html --cov-report=term
# open htmlcov/index.html
or using setuptools
poetry run pytest GPy/testing
Compiling documentation:
The documentation is stored in doc/ and is compiled with the Sphinx Python documentation generator, and is written in the reStructuredText format.
The Sphinx documentation is available here: http://sphinx-doc.org/latest/contents.html
Installing dependencies:
To compile the documentation, first ensure that Sphinx is installed. On Debian-based systems, this can be achieved as follows:
sudo apt-get install python-pip
sudo pip install sphinx
Compiling documentation:
The documentation can be compiled as follows:
cd doc
sphinx-apidoc -o source/ ../GPy/
make html
alternatively:
cd doc
sphinx-build -b html -d build/doctrees -D graphviz_dot='<path to dot>' source build/html
The HTML files are then stored in doc/build/html
Commit new patch to devel
If you want to merge a branch into devel make sure the following steps are met:
- Create a local branch from the pull request and merge the current devel in.
- Look through the changes on the pull request.
- Check that tests are there and are checking code where applicable.
- [optional] Make changes if necessary and commit and push to run tests.
- [optional] Repeat the above until tests pass.
- [optional] bump up the version of GPy using bumpversion. The configuration is done, so all you need is bumpversion [major|minor|patch].
- Update the changelog using gitchangelog:
gitchangelog > CHANGELOG.md - Commit the changes of the changelog as silent update: `git commit -m "chg: pkg: CHANGELOG update" CHANGELOG.md
- Push the changes into devel.
A usual workflow should look like this:
$ git fetch origin
$ git checkout -b <pull-origin>-devel origin/<pull-origin>-devel
$ git merge devel
$ coverage run travis_tests.py
Make changes for tests to cover corner cases (if statements, None arguments etc.) Then we are ready to make the last changes for the changelog and versioning:
$ git commit -am "fix: Fixed tests for <pull-origin>"
$ bumpversion patch # [optional]
$ gitchangelog > CHANGELOG.md
$ git commit -m "chg: pkg: CHANGELOG update" CHANGELOG.md
Now we can merge the pull request into devel:
$ git checkout devel
$ git merge --no-ff <pull-origin>-devel
$ git push origin devel
This will update the devel branch of GPy.
Deploying GPy
Publishing is a GitHub Release on devel (tag vX.Y.Z). That event builds
wheels (Linux x86_64 and aarch64, macOS, Windows; Python 3.11–3.14) and uploads
them to PyPI via Trusted Publishing. CIP-0008 may replace this with a tag-driven
pipeline after 1.15.0; do not change it for this cut.
Funding Acknowledgements
Current support for the GPy software is coming through the following projects.
-
EU FP7-HEALTH Project Ref 305626 "RADIANT: Rapid Development and Distribution of Statistical Tools for High-Throughput Sequencing Data"
-
EU FP7-PEOPLE Project Ref 316861 "MLPM2012: Machine Learning for Personalized Medicine"
-
MRC Special Training Fellowship "Bayesian models of expression in the transcriptome for clinical RNA-seq"
-
EU FP7-ICT Project Ref 612139 "WYSIWYD: What You Say is What You Did"
Previous support for the GPy software came from the following projects:
- BBSRC Project No BB/K011197/1 "Linking recombinant gene sequence to protein product manufacturability using CHO cell genomic resources"
- EU FP7-KBBE Project Ref 289434 "From Data to Models: New Bioinformatics Methods and Tools for Data-Driven Predictive Dynamic Modelling in Biotechnological Applications"
- BBSRC Project No BB/H018123/2 "An iterative pipeline of computational modelling and experimental design for uncovering gene regulatory networks in vertebrates"
- Erasysbio "SYNERGY: Systems approach to gene regulation biology through nuclear receptors"
Metadata
Release files for gpy 1.15.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 |
|---|---|---|---|---|
| gpy-1.15.0.tar.gz | 1.3 MB | Without provenance | Details for gpy-1.15.0.tar.gz |
Built distributions (wheels)
Total release size: 52.6 MB
Release files / gpy-1.15.0.tar.gz
| Download URL | gpy-1.15.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5f47700d7a1d6154367bad3f84c0482b8817713d94d5c128495aa9180d7349ec
|
|
BLAKE2b-256 checksum How to use checksums |
c7250414259f77d5d2aa44972880ec1c4327c63ed2bc34f705598ab31e190901
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp314-cp314-win_amd64.whl
| Download URL | gpy-1.15.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
609b6590843b0abf2d752b9416d9e100945fd98596a01c75b2ad8933a506fea8
|
|
BLAKE2b-256 checksum How to use checksums |
b230fe9f59c9c522a50f6dd3896d99f1d982adb29252bf79d1a122121b32f39b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpy-1.15.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4a97f74bcf7e8f4ddd72ab7c8dbe64f34428b4c0defa4a53d6f57d0d31330941
|
|
BLAKE2b-256 checksum How to use checksums |
44fbab892014679da6c6cb87978d2b20e88a3f3f963935402b1230316801f9d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpy-1.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e5fa2f2145c3ad3b3888fa934d23053eedf4363e59ee8bbe23031b9d0151bfe2
|
|
BLAKE2b-256 checksum How to use checksums |
17192620c6c91dac8e4af6cb41097d790af931c43db75ff0b2e9781089cbcd8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp314-cp314-macosx_26_0_arm64.whl
| Download URL | gpy-1.15.0-cp314-cp314-macosx_26_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.14 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
287805dd185d02b13e93f58111c9f4680c7a5a8a1acc4ac63eb4dd816f9605c4
|
|
BLAKE2b-256 checksum How to use checksums |
af623e395a98bd2202cc0dd7c45c65eb548c0262f59fedf4d43f66698b32447b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp313-cp313-win_amd64.whl
| Download URL | gpy-1.15.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0e128a60d29ee55db5b7a005b2d1bd7f1d62b5a2091d03d125038054c0b001f6
|
|
BLAKE2b-256 checksum How to use checksums |
8d065f19fd46a61ea0b2c3a2cf51ea9543a6f06d5b7612e87f279d1e81778eee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpy-1.15.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a754b1b326d2f588e5057fa77ad38aacd6821152c92289ab3483f2bf0a630141
|
|
BLAKE2b-256 checksum How to use checksums |
168fe09c067eef88a13bad228b9c071cdf19a74f9f9fc1d63dfd3575c15ac9f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpy-1.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
36088f14e29acf952aa4e581d15c43e24b43f232dfd5465c5a50b5bf3bcd81ba
|
|
BLAKE2b-256 checksum How to use checksums |
c9cb46e9df27a4ac0e9c501636e9504ea2d70ce43a90376a3a879863a7aa2300
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp313-cp313-macosx_26_0_arm64.whl
| Download URL | gpy-1.15.0-cp313-cp313-macosx_26_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.13 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fdadbe1ac3ad8e27f53ba2acdc0e9eaccf4194ecf21e2324555009f175b074c4
|
|
BLAKE2b-256 checksum How to use checksums |
0edf518e02c9a7a734e24cb920f246ddf079532a5115e82c797dd8bde60e7c0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp312-cp312-win_amd64.whl
| Download URL | gpy-1.15.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
739df5de495bb7f40ee577f9f41c834a901202ed6939da97ab6f580c4adf5e1c
|
|
BLAKE2b-256 checksum How to use checksums |
1ae8b98a152e0b9912704abfaf02d01b8ed87ad7b68309fa8bfb75407ca60756
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpy-1.15.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
83de95940c4865218c2166a8e93de0344b177f8b925cff17f593951be906b043
|
|
BLAKE2b-256 checksum How to use checksums |
74a1bd6d03652b7f6e24ef196a7e226f40f494a4c1e5a45df729b5b2f03ade96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpy-1.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e0815a1d7a2a4de64e57c9efef73a3ccc24d14450199677bbf2edf751f216c56
|
|
BLAKE2b-256 checksum How to use checksums |
57c5aa05cf8fe0355697e47384068ca5552e8cfd48687371070f6a49a9826608
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp312-cp312-macosx_26_0_arm64.whl
| Download URL | gpy-1.15.0-cp312-cp312-macosx_26_0_arm64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.12 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cc955b72a447cbc7eb98993a84635649405d08c41a990c00568797848d69faeb
|
|
BLAKE2b-256 checksum How to use checksums |
0cea0606843cc6618083e211f6e0c2fb9b0f0a9d0a77fba7d913c47f1ae5d4a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp311-cp311-win_amd64.whl
| Download URL | gpy-1.15.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8ba6b2688a3698ee1e6ff2a9ad7d7e4363094d3e4ff65aeb7b170e9292d47f44
|
|
BLAKE2b-256 checksum How to use checksums |
df2fe5c3f344c780e1b76ff2851e131f36360345029b56da7f24458a8704f977
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpy-1.15.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.4 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
efa8751756dde8e5934608925580d5bea1773b94b8cf1b8941abeed92bab9f03
|
|
BLAKE2b-256 checksum How to use checksums |
7a0d000bc3e63d055a2afe4d4a573ec798667146180213ea17e3b546bcdeec8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpy-1.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d39c47cee5c4f113a86db2705b4a4924d6b615594f04407967ba049e21b68525
|
|
BLAKE2b-256 checksum How to use checksums |
5f6425246361673cbd52e1eb56127cc8634e835bbf14894be2d87b825f56efdf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / gpy-1.15.0-cp311-cp311-macosx_26_0_arm64.whl
| Download URL | gpy-1.15.0-cp311-cp311-macosx_26_0_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c6e46c180b9f278984d1bb97073a4413922e0f9df8b3afc010a3bcff20316d8e
|
|
BLAKE2b-256 checksum How to use checksums |
c91931a9e1fdd79b4ff85d3515065ff3f3de62b18f95ed7eb8a9eb4512fde4b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Security for gpy 1.15.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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.