Skip to content
18 changes: 18 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
on:
release:
types: [created]
jobs:
deploy-to-pypi:
runs-on: ubuntu-latest
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- run: |
pip install build wheel twine
python -m build
twine upload dist/*
17 changes: 11 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,21 @@ on:
pull_request:

jobs:
Linux:
run-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # important for Coveralls to read commit history
- uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: tests
- name: tests and coverage
run: |
pip install -e .[advanced,dev]
pytest pynumdiff

pip install -e .[advanced,dev] coveralls
coverage run --source=pynumdiff --omit='pynumdiff/_version.py' -m pytest -s
coverage xml
- uses: coverallsapp/github-action@v2
with:
format: cobertura
file: coverage.xml
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@ Python methods for numerical differentiation of noisy data, including multi-obje
</p>

<p align="center">
<img src='https://github.com/florisvb/pynumdiff/actions/workflows/test.yml/badge.svg'/>
<a href='https://pynumdiff.readthedocs.io/master/'>
<img src='https://app.readthedocs.org/projects/pynumdiff/badge/?version=master' alt='Documentation Status' /></a>
<a href='https://coveralls.io/github/florisvb/PyNumDiff?branch=master'>
<img src='https://coveralls.io/repos/github/florisvb/PyNumDiff/badge.svg?branch=master' alt='Coverage Status' /></a>
<a href="https://badge.fury.io/py/pynumdiff">
<img src="https://badge.fury.io/py/pynumdiff.svg" alt="PyPI version" height="18"></a>
<img src="https://badge.fury.io/py/pynumdiff.svg" alt="PyPI"></a>
<a href="https://zenodo.org/badge/latestdoi/159711175">
<img src="https://zenodo.org/badge/159711175.svg" alt="DOI"></a>
<a href="https://joss.theoj.org/papers/102257ee4b0142bf49bc18d7c810e9d5">
Expand All @@ -24,12 +27,12 @@ Python methods for numerical differentiation of noisy data, including multi-obje
PyNumDiff is a Python package that implements various methods for computing numerical derivatives of noisy data, which can be a critical step in developing dynamic models or designing control. There are seven different families of methods implemented in this repository:

1. convolutional smoothing followed by finite difference calculation
2. polynomial-fit-based methods
3. iterated finite differencing
4. total variation regularization of a finite difference derivative
5. Kalman (RTS) smoothing
6. basis-function-based methods
7. linear local approximation with linear model
2. polynomial fit methods
3. basis function fit methods
4. iterated finite differencing
5. total variation regularization of a finite difference derivative
6. Kalman (RTS) smoothing
7. local approximation with linear model

Most of these methods have multiple parameters, so we take a principled approach and propose a multi-objective optimization framework for choosing parameters that minimize a loss function to balance the faithfulness and smoothness of the derivative estimate. For more details, refer to [this paper](https://doi.org/10.1109/ACCESS.2020.3034077).

Expand Down