Skip to content
This repository was archived by the owner on Dec 23, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
version: 2

updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: weekly
open-pull-requests-limit: 1
assignees:
- JoshKarpel
labels:
- dependencies
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "thursday"
open-pull-requests-limit: 1
7 changes: 7 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!--- Provide a general summary of your changes here. -->

Tasks
-----

- [ ] Updated changelog.
- [ ] Updated documentation.
23 changes: 23 additions & 0 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: publish-docs

on:
push:
branches:
- main

jobs:
publish-docs:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3.3.0
- name: Set up Python 3.x
uses: actions/setup-python@v4.5.0
with:
python-version: "3.x"
- name: Install Poetry
uses: snok/install-poetry@v1.3.3
- name: Install Package
run: poetry install
- name: Build and deploy docs
run: poetry run mkdocs gh-deploy --clean --strict --verbose --force
23 changes: 23 additions & 0 deletions .github/workflows/publish-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: publish-package

on:
release:
types: [published]

jobs:
pypi:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3.3.0
- name: Set up Python 3.x
uses: actions/setup-python@v4.5.0
with:
python-version: "3.x"
- name: Install Poetry
uses: snok/install-poetry@v1.3.3
- name: Build the package
run: poetry build -vvv
- name: Publish to PyPI
run: poetry publish --username __token__ --password ${{ secrets.pypi_token }}
working-directory: ${{ github.workspace }}
24 changes: 0 additions & 24 deletions .github/workflows/publish.yml

This file was deleted.

50 changes: 50 additions & 0 deletions .github/workflows/quality-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: quality-check

on:
push:
branches:
- main
pull_request:

jobs:
test-code:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
defaults:
run:
shell: bash
runs-on: ${{ matrix.platform }}
timeout-minutes: 15
env:
PLATFORM: ${{ matrix.platform }}
PYTHON_VERSION: ${{ matrix.python-version }}
PIP_DISABLE_PIP_VERSION_CHECK: 1
steps:
- name: Check out repository
uses: actions/checkout@v3.3.0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4.5.0
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: snok/install-poetry@v1.3.3
- name: Install Package
run: poetry install
- name: Run pre-commit checks
run: poetry run pre-commit run --all-files --show-diff-on-failure --color=always
- name: Make sure we can build the package
run: poetry build -vvv
- name: Test types
run: poetry run mypy
- name: Test code
run: poetry run pytest -v --cov --cov-report=xml --durations=20
- name: Test docs
run: poetry run mkdocs build --clean --strict --verbose
- name: Upload coverage
uses: codecov/codecov-action@v3.1.1
with:
env_vars: PLATFORM,PYTHON_VERSION
fail_ci_if_error: false
39 changes: 0 additions & 39 deletions .github/workflows/tests.yml

This file was deleted.

4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ coverage.xml
*.cover
.hypothesis/
.pytest_cache/
.mypy_cache/

# Translations
*.mo
Expand All @@ -62,9 +63,6 @@ instance/
# Scrapy stuff:
.scrapy

# Sphinx documentation
#docs/_build/

# PyBuilder
target/

Expand Down
43 changes: 21 additions & 22 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-ast
Expand All @@ -11,41 +11,40 @@ repos:
- id: check-docstring-first
- id: check-merge-conflict
- id: check-toml
- id: check-yaml
- id: check-json
- id: debug-statements
- id: end-of-file-fixer
- id: forbid-new-submodules
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.9.0
rev: v1.10.0
hooks:
- id: python-check-mock-methods
- id: python-no-eval
- id: python-no-log-warn
- id: python-use-type-annotations
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.3.1
- id: python-check-blanket-type-ignore
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.22.0
hooks:
- id: check-github-workflows
- id: check-github-actions
- id: check-dependabot
- repo: https://github.com/hadialqattan/pycln
rev: v2.1.3
hooks:
- id: pycln
args: [--config=pyproject.toml]
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: remove-crlf
- id: isort
- repo: https://github.com/psf/black
rev: 22.10.0
rev: 23.1.0
hooks:
- id: black
- repo: https://github.com/asottile/blacken-docs
rev: v1.12.1
- repo: https://github.com/adamchainz/blacken-docs
rev: 1.13.0
hooks:
- id: blacken-docs
additional_dependencies: [ black==20.8b1 ]
- repo: https://github.com/asottile/setup-cfg-fmt
rev: v2.2.0
hooks:
- id: setup-cfg-fmt
- repo: https://github.com/asottile/seed-isort-config
rev: v2.2.0
hooks:
- id: seed-isort-config
- repo: https://github.com/PyCQA/isort
rev: 5.10.1
hooks:
- id: isort
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
## Reporting Issues

Report issues via the GitHub issue tracker.
Be as specific as possible about the problem you're encountering, and include all relevant details (a [minimal working example](https://en.wikipedia.org/wiki/Minimal_Working_Example), the full traceback of the error or description of how the output and the desired output differ, Python version, IDESolver version, etc.)
Be as specific as possible about the problem you're encountering, and include all relevant details
(a [minimal working example](https://en.wikipedia.org/wiki/Minimal_Working_Example),
the full traceback of the error or description of how the output and the desired output differ,
Python version, IDESolver version, etc.)

## Contributing Code

We are generally open to GitHub pull requests.
However, IDESolver is built to solve a very specific problem.
We won't accept pull requests that expand the project beyond the core idea: solving IDEs numerically via iterative relaxation algorithms.

* Follow [pep8](https://www.python.org/dev/peps/pep-0008/) when possible.
* Extensions to functionality should generally be presented as optional additions/replacements to existing options.
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
idesolver
---------

[![DOI](https://joss.theoj.org/papers/10.21105/joss.00542/status.svg)](https://doi.org/10.21105/joss.00542)

[![PyPI](https://img.shields.io/pypi/v/idesolver)](https://pypi.org/project/idesolver)
[![PyPI - License](https://img.shields.io/pypi/l/idesolver)](https://pypi.org/project/idesolver)
[![Docs](https://img.shields.io/badge/docs-exist-brightgreen)](https://www.idesolver.how)

[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/JoshKarpel/idesolver/main.svg)](https://results.pre-commit.ci/latest/github/JoshKarpel/idesolver/main)
[![codecov](https://codecov.io/gh/JoshKarpel/idesolver/branch/main/graph/badge.svg?token=2sjP4V0AfY)](https://codecov.io/gh/JoshKarpel/idesolver)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

[![GitHub issues](https://img.shields.io/github/issues/JoshKarpel/idesolver)](https://github.com/JoshKarpel/idesolver/issues)
[![GitHub pull requests](https://img.shields.io/github/issues-pr/JoshKarpel/idesolver)](https://github.com/JoshKarpel/idesolver/pulls)

A general purpose numeric integro-differential equation (IDE) solver, based on an iterative scheme devised by [Gelmi and Jorquera](https://doi.org/10.1016/j.cpc.2013.09.008).
IDEs appear in many contexts, particularly when trying to describe a system whose current behavior depends on its own history.
IDESolver provides a simple interface for solving these kinds of equations in Python.

Stable releases are available on PyPI: `pip install idesolver`.

Full documentation can be found [here](https://idesolver.readthedocs.io/en/latest/).
If you use `idesolver` in your research, please consider [citing the associated paper](https://joss.theoj.org/papers/10.21105/joss.00542>).

Problems with IDESolver should be reported via [GitHub issues](https://github.com/JoshKarpel/idesolver/issues).
We are open to improvements: see the [Code of Conduct](https://github.com/JoshKarpel/idesolver/blob/master/CODE_OF_CONDUCT.md)
and the [Contribution Guidelines](https://github.com/JoshKarpel/idesolver/blob/master/CONTRIBUTING.md) for details.
33 changes: 0 additions & 33 deletions README.rst

This file was deleted.

Loading