Skip to content

Commit

Permalink
Merge pull request #10 from GeoStat-Framework/develop
Browse files Browse the repository at this point in the history
1.1.0 release
  • Loading branch information
MuellerSeb authored Mar 22, 2020
2 parents 81416d1 + 24cd448 commit 4e6b80b
Show file tree
Hide file tree
Showing 30 changed files with 245 additions and 662 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,6 @@ info/

# JOSS stuff
paper/compile

# setuptools_scm generated version files
pentapy/_version.py
169 changes: 49 additions & 120 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,137 +1,66 @@
language: python
python: 3.8

matrix:
include:
- name: "Linux py27"
sudo: required
language: python
python: 2.7
services: docker
env:
- PIP=pip
- CIBW_BUILD="cp27-*"
- COVER="off"

- name: "Linux py34"
sudo: required
language: python
python: 3.4
services: docker
env:
- PIP=pip
- CIBW_BUILD="cp34-*"
- COVER="off"

- name: "Linux py35"
sudo: required
language: python
python: 3.5
services: docker
env:
- PIP=pip
- CIBW_BUILD="cp35-*"
- COVER="off"

# py36 for coverage and sdist
- name: "Linux py36"
sudo: required
language: python
python: 3.6
services: docker
env:
- PIP=pip
- CIBW_BUILD="cp36-*"
- COVER="on"

# https://github.com/travis-ci/travis-ci/issues/9815
- name: "Linux py37"
sudo: required
language: python
python: 3.7
dist: xenial
services: docker
env:
- PIP=pip
- CIBW_BUILD="cp37-*"
- COVER="off"

- name: "MacOS py27"
os: osx
language: generic
env:
- PIP=pip2
- CIBW_BUILD="cp27-*"
- COVER="off"

- name: "MacOS py34"
os: osx
language: generic
env:
- PIP=pip2
- CIBW_BUILD="cp34-*"
- COVER="off"

- name: "MacOS py35"
os: osx
language: generic
env:
- PIP=pip2
- CIBW_BUILD="cp35-*"
- COVER="off"

- name: "MacOS py36"
os: osx
language: generic
env:
- PIP=pip2
- CIBW_BUILD="cp36-*"
- COVER="off"

- name: "MacOS py37"
os: osx
language: generic
env:
- PIP=pip2
- CIBW_BUILD="cp37-*"
- COVER="off"
# setuptools-scm needs all tags in order to obtain a proper version
git:
depth: false

env:
global:
- TWINE_USERNAME=geostatframework
- CIBW_BEFORE_BUILD="pip install numpy==1.14.5 cython==0.28.3"
- CIBW_TEST_REQUIRES=pytest-cov
# inplace cython build and test run
- CIBW_TEST_COMMAND="cd {project} && python setup.py build_ext --inplace && py.test --cov pentapy --cov-report term-missing -v {project}/tests"
- CIBW_BEFORE_BUILD="pip install numpy==1.17.3 cython==0.29.14 setuptools"
- CIBW_TEST_REQUIRES=pytest
- CIBW_TEST_COMMAND="pytest -v {project}/tests"
- CIBW_BUILD="cp35-* cp36-* cp37-* cp38-*"

script:
# create wheels
- $PIP install cibuildwheel==0.11.1
- cibuildwheel --output-dir wheelhouse
# create source dist for pypi and create coverage (only once for linux py3.6)
before_install:
- |
if [[ $COVER == "on" ]]; then
rm -rf dist
python -m pip install -U numpy==1.14.5 cython==0.28.3 setuptools
python -m pip install pytest-cov coveralls
python -m pip install -r docs/requirements.txt
python setup.py sdist
python setup.py build_ext --inplace
python -m pytest --cov pentapy --cov-report term-missing -v tests/
python -m coveralls
if [[ "$TRAVIS_OS_NAME" = windows ]]; then
choco install python --version 3.8.0
export PATH="/c/Python38:/c/Python38/Scripts:$PATH"
# make sure it's on PATH as 'python3'
ln -s /c/Python38/python.exe /c/Python38/python3.exe
fi
install:
- python3 -m pip install cibuildwheel==1.3.0

script:
- python3 -m cibuildwheel --output-dir dist

after_success:
# pypi upload ("test" allways and "official" on TAG)
- python -m pip install twine
- python -m twine upload --verbose --skip-existing --repository-url https://test.pypi.org/legacy/ wheelhouse/*.whl
- python -m twine upload --verbose --skip-existing --repository-url https://test.pypi.org/legacy/ dist/*.tar.gz
- |
if [[ $TRAVIS_TAG ]]; then
python -m twine upload --verbose --skip-existing wheelhouse/*.whl
python -m twine upload --verbose --skip-existing dist/*.tar.gz
if [[ $TRAVIS_PULL_REQUEST == 'false' ]]; then
python3 -m pip install twine
python3 -m twine upload --verbose --skip-existing --repository-url https://test.pypi.org/legacy/ dist/*
if [[ $TRAVIS_TAG ]]; then python3 -m twine upload --verbose --skip-existing dist/*; fi
fi
notifications:
email:
recipients:
- info@geostat-framework.org
- info@geostat-framework.org

jobs:
include:
- name: "sdist and coverage"
services: docker
script:
- python3 -m pip install -U setuptools pytest-cov coveralls
- python3 -m pip install -U numpy==1.17.3 cython==0.29.14
- python3 -m pip install -r requirements.txt
- python3 setup.py sdist -d dist
- python3 setup.py build_ext --inplace
- python3 -m pytest --cov pentapy --cov-report term-missing -v tests/
- python3 -m coveralls

- name: "Linux py35-py38"
services: docker

- name: "MacOS py35-py38"
os: osx
language: shell

- name: "Win py35-py38"
os: windows
language: shell
19 changes: 19 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"license": "MIT",
"language": "eng",
"keywords": [
"linear algebra",
"equation systems",
"pentadiagonal matrices",
"math",
"Python",
"GeoStat-Framework"
],
"creators": [
{
"orcid": "0000-0001-9060-4008",
"affiliation": "Helmholtz Centre for Environmental Research - UFZ",
"name": "Sebastian M\u00fcller"
}
]
}
54 changes: 54 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Changelog

All notable changes to **pentapy** will be documented in this file.


## [1.1.0] - 2020-03-22

### Enhancements
- Python 3.8 support

### Changes
- python only builds are no longer available
- Python 2.7 and 3.4 support dropped


## [1.0.3] - 2019-11-10

### Enhancements
- the algorithms `PTRANS-I` and `PTRANS-II` now raise a warning when they can not solve the given system
- there are now switches to install scipy and umf solvers as extra requirements

### Bugfixes
- multiple minor bugfixes


## [1.0.0] - 2019-09-18

### Enhancements
- the second algorithm `PTRANS-II` from *Askar et al. 2015* is now implemented and can be used by `solver=2`
- the package is now tested and a coverage is calculated
- there are now pre-built binaries for Python 3.7
- the documentation is now available under https://geostat-framework.readthedocs.io/projects/pentapy

### Changes
- pentapy is now licensed under the MIT license


## [0.1.1] - 2019-03-08

### Bugfixes
- MANIFEST.in was missing in the 0.1.0 version


## [0.1.0] - 2019-03-07

This is the first release of pentapy, a python toolbox for solving pentadiagonal linear equation systems.
The solver is implemented in cython, which makes it really fast.


[1.1.0]: https://github.com/GeoStat-Framework/gstools/compare/v1.0.3...v1.1.0
[1.0.3]: https://github.com/GeoStat-Framework/gstools/compare/v1.0.0...v1.0.3
[1.0.0]: https://github.com/GeoStat-Framework/gstools/compare/v0.1.1...v1.0.0
[0.1.1]: https://github.com/GeoStat-Framework/gstools/compare/v0.1...v0.1.1
[0.1.0]: https://github.com/GeoStat-Framework/gstools/releases/tag/v0.1
3 changes: 3 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
include README.md
include MANIFEST.in
include setup.py
include setup.cfg
recursive-include pentapy *.py *.pyx *.c
recursive-include tests *.py
recursive-include docs/source *
include docs/Makefile docs/requirements.txt
include LICENSE
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
[![status](https://joss.theoj.org/papers/57c3bbdd7b7f3068dd1e669ccbcf107c/status.svg)](https://joss.theoj.org/papers/57c3bbdd7b7f3068dd1e669ccbcf107c)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2587158.svg)](https://doi.org/10.5281/zenodo.2587158)
[![PyPI version](https://badge.fury.io/py/pentapy.svg)](https://badge.fury.io/py/pentapy)
[![Build Status](https://travis-ci.org/GeoStat-Framework/pentapy.svg?branch=master)](https://travis-ci.org/GeoStat-Framework/pentapy)
[![Build status](https://ci.appveyor.com/api/projects/status/yyfgn9dgxcoolp97/branch/master?svg=true)](https://ci.appveyor.com/project/GeoStat-Framework/pentapy/branch/master)
[![Build Status](https://travis-ci.com/GeoStat-Framework/pentapy.svg?branch=master)](https://travis-ci.com/GeoStat-Framework/pentapy)
[![Coverage Status](https://coveralls.io/repos/github/GeoStat-Framework/pentapy/badge.svg?branch=master)](https://coveralls.io/github/GeoStat-Framework/pentapy?branch=master)
[![Documentation Status](https://readthedocs.org/projects/pentapy/badge/?version=latest)](https://geostat-framework.readthedocs.io/projects/pentapy/en/latest/?badge=latest)
[![Documentation Status](https://readthedocs.org/projects/pentapy/badge/?version=stable)](https://geostat-framework.readthedocs.io/projects/pentapy/en/stable/?badge=stable)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)


Expand Down Expand Up @@ -41,6 +40,15 @@ following extra argument:
Instead of "all" you can also typ "scipy" or "umfpack" to get one of these specific packages.


## Citation

If you use `pentapy` in your publication, please cite it:

> Müller, (2019). pentapy: A Python toolbox for pentadiagonal linear systems. Journal of Open Source Software, 4(42), 1759, https://doi.org/10.21105/joss.01759
To cite a certain release, have a look at the Zenodo site: https://doi.org/10.5281/zenodo.2587158


## References

The solver is based on the algorithms PTRANS-I and PTRANS-II
Expand Down Expand Up @@ -95,7 +103,7 @@ The implementations of pentapy are almost one order of magnitude faster than the
scipy algorithms for banded or sparse matrices.

The performance plot was created with [``perfplot``](https://github.com/nschloe/perfplot).
Have a look at the script: [``examples/04_perform_simple.py``](https://github.com/GeoStat-Framework/pentapy/blob/master/examples/04_perform_simple.py).
Have a look at the script: [``examples/03_perform_simple.py``](https://github.com/GeoStat-Framework/pentapy/blob/master/examples/03_perform_simple.py).



Expand All @@ -115,10 +123,10 @@ You can contact us via <info@geostat-framework.org>.

## License

[MIT][licence_link] © 2019
[MIT][licence_link] © 2019 - 2020

[ref_link]: http://dx.doi.org/10.1155/2015/232456
[pip_link]: https://pypi.org/project/pentapy
[winpy_link]: https://winpython.github.io/
[licence_link]: https://github.com/GeoStat-Framework/pentapy/blob/master/LICENSE
[doc_link]: https://geostat-framework.readthedocs.io/projects/pentapy/en/latest/
[doc_link]: https://pentapy.readthedocs.org
22 changes: 0 additions & 22 deletions appveyor.yml

This file was deleted.

7 changes: 3 additions & 4 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#required for readthedocs.org
cython>=0.28.3
numpy>=1.14.5
numpydoc
-r requirements_doc.txt
-r ../requirements_setup.txt
-r ../requirements.txt
1 change: 1 addition & 0 deletions docs/requirements_doc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
numpydoc
4 changes: 3 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
# NOTE:
# pip install sphinx_rtd_theme
# is needed in order to build the documentation
import datetime
import os
import sys

Expand Down Expand Up @@ -94,8 +95,9 @@ def setup(app):
master_doc = "contents"

# General information about the project.
curr_year = datetime.datetime.now().year
project = "pentapy"
copyright = "2019, Sebastian Mueller"
copyright = "2019 - {}, Sebastian Mueller".format(curr_year)
author = "Sebastian Mueller"

# The version info for the project you're documenting, acts as replacement for
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,4 @@ Optional
License
=======

`MIT <https://github.com/GeoStat-Framework/pentapy/blob/master/LICENSE>`_ © 2019
`MIT <https://github.com/GeoStat-Framework/pentapy/blob/master/LICENSE>`_
2 changes: 1 addition & 1 deletion examples/03_compare.py → examples/02_compare.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""
3. Example.
2. Example.
Here we compare the outcome of the PTRANS-I and PTRANS-II algorithm for
a random input.
Expand Down
Loading

0 comments on commit 4e6b80b

Please sign in to comment.