pygsl
PyGSL is a Python wrapper for the GNU Scientific Library (GSL).
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
4 of 9 committers (44.4%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.0%) to scientific vocabulary
Last synced: 6 months ago
·
JSON representation
·
Repository
PyGSL is a Python wrapper for the GNU Scientific Library (GSL).
Basic Info
Statistics
- Stars: 33
- Watchers: 4
- Forks: 9
- Open Issues: 22
- Releases: 10
Created almost 5 years ago
· Last pushed 11 months ago
Metadata Files
Readme
Changelog
License
Citation
README.rst
PyGSL: Python interface for GNU Scientific Library
==================================================
.. image:: https://img.shields.io/pypi/v/pygsl.svg
:target: https://pypi.python.org/pypi/pygsl
.. image:: https://img.shields.io/conda/vn/conda-forge/pygsl
:target: https://anaconda.org/conda-forge/pygsl
..
.. image:: https://img.shields.io/codecov/c/github/bluesky/pygsl
:target: https://codecov.io/gh/pygsl/pygsl
.. image:: https://img.shields.io/github/commits-since/pygsl/pygsl/latest
:target: https://github.com/pygsl/pygsl
.. image:: https://img.shields.io/pypi/dm/pygsl?label=PyPI%20downloads
:target: https://pypi.python.org/pypi/pygsl
.. image:: https://img.shields.io/conda/dn/conda-forge/pygsl?label=Conda-Forge%20downloads
:target: https://anaconda.org/conda-forge/pygsl
PyGSL is a Python wrapper for the `GNU Scientific Library (GSL) `_. Nearly all modules are wrapped. A lot of tests are covering various functionality.
Please report it as a `Github Issue `_ if you find a bug. We are looking forward to contributions of new submodules, while maintaining the available code, and welcome `pull requests `_.
PyGSL moved from Sourceforge to GitHub in 2021.
Requirements
------------
To build the interface, you will need
- `GSL 2.x `_
- `Python 3.9 `_ or newer
- `NumPy `_
- Swig4 _
- an ANSI C compiler (e.g. gcc).
- A Posix 1 compliant operating system
Since version 2.6 PyGSL is built using meson-python. Swig must be always
installed to build PyGSL.Meson-python will be automatically
installed by PyPI during the build process.
Installing PyGSL
----------------
Installing via PyPI
~~~~~~~~~~~~~~~~~~~
PyGSL can also installed using the pip package installer.
SWIG is required to be installed and can usually be found via your distribution's package manager
(for example, ``apt install swig``).
To install PyGSL from PyPI, first install
.. code-block:: sh
pip install --upgrade pip wheel
.. code-block:: sh
pip install pygsl
To remove PyGSL, use:
.. code-block:: sh
pip uninstall pygsl
Building it locally
~~~~~~~~~~~~~~~~~~~
It can be useful to install PyGSL locally e.g. if the automatic build process fails.
In a first step, update the packages `pip` and `wheel` as
.. code-block:: sh
pip install --upgrade build
-- code-block:: sh
python3 -m build -w .
Using PyGSL
-----------
Do NOT test the interface in the distribution root directory! -- please
install it first and then change to the tests directory and execute ``python
-m pytest .``.
Just write in Python
.. code-block:: python
import pygsl.sf
print("%g+/-%g"%pygsl.sf.erf(1))
or
.. code-block:: python
import pygsl.rng
rng=pygsl.rng.rng()
print rng.gaussian(1.0)
You may set the environment variable ``LD_LIBRARY_PATH`` to find the gsl
shared object.
Supported Platforms
-------------------
- Linux with Python 3.x and GSL 2.x
- Mac OS X with Python 3.x and GSL 2.x
but is supposed to compile and run on any posix platform.
Currently it is being tested using GitHub Actions continuous integration on:
- Python 3.9 -- 3.12, numpy 1.x and 2.x and GSL 2.7.1 under Ubuntu Linux 22.04.2.
Testing
-------
The directory test will contain several testsuites, based on Python
unittest. Change to this directory to run the tests.
What is implemented (versus GSL 2.1):
- Blas
- BSplines
- Chebyshev
- Combination
- Const
- Diff
- Eigen
- Fit
- Ieee
- Integrate
- Interpolation
- Interpolation2D
- Linalg
- Math
- Minimize
- Multifit
- Multifit_nlin
- Multimin
- Multiroots
- Odeiv
- Permutation
- Poly
- Qrng
- Rng
- Roots
- Siman
- Sf
- Spline
- Statistics
What is not implemented yet (versus GSL 2.7)
---------------------------------------------
- GSL Capabilites not yet wrapped by PyGSL
- Sorting
- N-tuples
- GSL Capabilites partly implemented
- Discrete Hankel Transforms
See also the TODO file in the distribution.
For the exact function volume for a module, please type:
.. code-block:: python
from pygsl.testing import sf
dir(sf)
You can do this with the other modules, too. The naming scheme is the same
as in GSL.
Documentation
-------------
The function reference can be found in the docstrings and at the gsl-reference.
Written documentation can be found in the ``doc/ref`` directory.
See also the ``examples`` directory.
Support
-------
Support requests and all other questions should be submitted as a `GitHub Issue `_.
Developement
------------
You can browse our `git repository `_.
If you want to contribute to PyGSL, please fork the repository and create a pull request.
The script tools/extract_tool.py generates most of the special function code.
History
-------
A GSL interface for Python was needed for a project at `Center for
applied informatics Cologne `_.
pygsl-0.0.3 was released on May 23, 2001.
Thanks
------
* Charl Linssen for continous integration
* Jochen Küpper for pygsl.statistics
* Fabian Jakobs for pygsl.blas, pygsl.eigen,
pygsl.linalg and pygsl.permutation
* Leonardo Milano for rpm build support and test
* Eric Gurrola and Peter Stoltz for testing and supporting the port of
pygsl to the MAC
* Sebastien Maret for supporting the Fink http://fink.sourceforge.net
port of pygsl.
* Michael Forbes for Series Acceleration
* Sergei Ossokine
* Jerry James
* and all for support by providing feed back on testing or showing by
email that the code is useful for them
Maintainers
-----------
PyGSL is currently maintained by `Achim Gaedke `_, `Pierre Schnizer `_ and `Charl Linssen `_.
Owner
- Name: pygsl
- Login: pygsl
- Kind: organization
- Repositories: 1
- Profile: https://github.com/pygsl
Citation (citation.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: pygsl
message: Python wrapper for the GNU Scientific Library
type: software
authors:
- given-names: Pierre
family-names: Schnizer
email: pierre.schnizer@helmholtz-berlin.de
orcid: 'https://orcid.org/0000-0002-2897-7855'
- given-names: Achim
family-names: Gädke
email: achim.gaedke@gmail.com
- given-names: Charl
family-names: Linssen
email: c.linssen@fz-juelich.de
- given-names: Jochen
family-names: Küpper
- name: Fabian
- given-names: Fabian
family-names: Jacobs
- given-names: Eric
family-names: Gurrola
- given-names: Sebastian
family-names: Maret
- given-names: Michael
family-names: Forbes
- given-names: Sergei
family-names: Ossokine
- given-names: Jerry
family-names: James
identifiers:
- type: other
value: 'https://www.gnu.org/software/gsl/'
description: GNU Scientific library
repository-code: 'https://github.com/pygsl/pygsl.git'
url: 'https://github.com/pygsl/pygsl'
abstract: >-
PyGSL is a Python wrapper for the GNU Scientific Library
(GSL, https://www.gnu.org/software/gsl/) Nearly all
modules are wrapped.
license: GPL-2.0
version: 2.6.2
date-released: '11. April 2025'
GitHub Events
Total
- Create event: 24
- Release event: 4
- Issues event: 13
- Watch event: 10
- Delete event: 21
- Issue comment event: 29
- Push event: 107
- Pull request review event: 1
- Pull request review comment event: 4
- Pull request event: 36
- Fork event: 1
Last Year
- Create event: 24
- Release event: 4
- Issues event: 13
- Watch event: 10
- Delete event: 21
- Issue comment event: 29
- Push event: 107
- Pull request review event: 1
- Pull request review comment event: 4
- Pull request event: 36
- Fork event: 1
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 1,095
- Total Committers: 9
- Avg Commits per committer: 121.667
- Development Distribution Score (DDS): 0.202
Top Committers
| Name | Commits | |
|---|---|---|
| Pierre Schnizer | s****r@u****t | 874 |
| Achim G"adke | a****e@u****t | 80 |
| Pierre Schnizer | P****r@h****e | 72 |
| C.A.P. Linssen | c****n@f****e | 24 |
| Pierre Schnizer | p****r@h****e | 14 |
| Jochen Kuepper | k****r@u****t | 14 |
| C.A.P. Linssen | c****l@t****m | 10 |
| Sebastien Maret | 6 | |
| Serguei Ossokine | s****e@a****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 36
- Total pull requests: 73
- Average time to close issues: 4 months
- Average time to close pull requests: 15 days
- Total issue authors: 24
- Total pull request authors: 5
- Average comments per issue: 2.64
- Average comments per pull request: 0.45
- Merged pull requests: 52
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 44
- Average time to close issues: about 1 month
- Average time to close pull requests: 7 days
- Issue authors: 8
- Pull request authors: 3
- Average comments per issue: 2.13
- Average comments per pull request: 0.34
- Merged pull requests: 27
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- clinssen (4)
- jose-matos (4)
- milen-prg (3)
- SergeiOssokine (2)
- steffengraber (2)
- adwaitk06 (2)
- TimBerberich (2)
- matthias-baur (1)
- marfari (1)
- Saakethjayarama (1)
- beykyle (1)
- amesgen (1)
- WarrenWeckesser (1)
- sylviankahane (1)
- opoplawski (1)
Pull Request Authors
- PierreSchnizer (63)
- jamesjer (13)
- clinssen (8)
- SergeiOssokine (2)
- amesgen (2)
Top Labels
Issue Labels
Pull Request Labels
bug (4)
Packages
- Total packages: 1
-
Total downloads:
- pypi 361 last-month
- Total dependent packages: 1
- Total dependent repositories: 4
- Total versions: 9
- Total maintainers: 4
pypi.org: pygsl
GNU Scientific Library Interface
- Documentation: https://pygsl.readthedocs.io/
- License: gpl-2.0
-
Latest release: 2.6.2
published 11 months ago
Rankings
Dependent packages count: 4.8%
Dependent repos count: 7.5%
Average: 10.7%
Downloads: 12.6%
Forks count: 14.2%
Stargazers count: 14.6%
Maintainers (4)
Last synced:
7 months ago
Dependencies
.github/workflows/pygsl-ci.yml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v3 composite
.github/workflows/pygsl-pypi.yml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
docker/Dockerfile
docker
- ubuntu focal build
pyproject.toml
pypi
.github/workflows/pygsl-ci-compat.yml
actions
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/upload-artifact v4 composite
.github/workflows/pypi-publish.yml
actions
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
- sigstore/gh-action-sigstore-python v3.0.0 composite
bak/setup.py
pypi
- numpy *