diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ed9f688..7f58478 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,16 +1,23 @@ name: Build and test -on: [push] -# on: -# pull_request: -# branches: -# - main +on: + push: + branches: + - main + pull_request: + branches: + - main jobs: build: name: Build project - runs-on: ubuntu-latest - # runs-on: python:latest + + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + steps: - uses: actions/checkout@v4 @@ -20,11 +27,8 @@ jobs: python-version: "3.8" cache: "pip" # caching pip dependencies - - name: Update pip - run: pip install --upgrade pip - - name: Install dependencies and scipy_dae - run: pip install -e . + run: pip install . - name: Install test dependencies run: pip install pytest pytest-cov diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..6806a56 --- /dev/null +++ b/meson.build @@ -0,0 +1,9 @@ +project( + 'scipy_dae', + version: '0.0.4', + meson_version: '>= 1.1.0', +) + +py3 = import('python').find_installation() + +subdir('scipy_dae') \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 9c82056..f561e6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,6 @@ [build-system] -requires = ["setuptools>=61.0"] -build-backend = "setuptools.build_meta" - -[tool.setuptools.packages] -find = {} # Scanning implicit namespaces is active by default +build-backend = "mesonpy" +requires = ["meson-python>=0.15.0"] [project] name = "scipy_dae" @@ -20,9 +17,24 @@ dependencies = [ "matplotlib>=3.4.3", ] classifiers = [ - "Programming Language :: Python :: 3", + "Development Status :: 4 - Beta", + "Intended Audience :: Science/Research", + "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", - "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Software Development :: Libraries", + "Topic :: Scientific/Engineering", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX :: Linux", + "Operating System :: POSIX", + "Operating System :: Unix", + "Operating System :: MacOS", ] [project.optional-dependencies] @@ -32,5 +44,8 @@ dev = [ ] [project.urls] -Homepage = "https://github.com/JonasBreuling/scipy_dae" -Issues = "https://github.com/JonasBreuling/scipy_dae/issues" +homepage = "https://github.com/JonasBreuling/scipy_dae" +documentaton = "https://github.com/JonasBreuling/scipy_dae" +source = "https://github.com/JonasBreuling/scipy_dae" +download = "https://github.com/JonasBreuling/scipy_dae/releases" +tracker = "https://github.com/JonasBreuling/scipy_dae/issues" diff --git a/scipy_dae/integrate/__init__.py b/scipy_dae/integrate/__init__.py index 9f9efdb..678bfdc 100644 --- a/scipy_dae/integrate/__init__.py +++ b/scipy_dae/integrate/__init__.py @@ -1,2 +1,6 @@ -from ._dae import solve_dae, consistent_initial_conditions -from ._dae import BDFDAE, RadauDAE \ No newline at end of file +from ._dae import ( + solve_dae, + consistent_initial_conditions, + BDFDAE, + RadauDAE, +) \ No newline at end of file diff --git a/scipy_dae/integrate/_dae/meson.build b/scipy_dae/integrate/_dae/meson.build new file mode 100644 index 0000000..2053c3b --- /dev/null +++ b/scipy_dae/integrate/_dae/meson.build @@ -0,0 +1,12 @@ +py3.install_sources([ + '__init__.py', + 'base.py', + 'bdf.py', + 'common.py', + 'dae.py', + 'radau.py', + ], + subdir: 'scipy_dae/integrate/_dae' +) + +subdir('tests') \ No newline at end of file diff --git a/scipy_dae/integrate/_dae/tests/__init__.py b/scipy_dae/integrate/_dae/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scipy_dae/integrate/_dae/tests/meson.build b/scipy_dae/integrate/_dae/tests/meson.build new file mode 100644 index 0000000..a6463c1 --- /dev/null +++ b/scipy_dae/integrate/_dae/tests/meson.build @@ -0,0 +1,8 @@ +py3.install_sources([ + '__init__.py', + 'test_consistent_initial_conditions.py', + 'test_dae.py', + ], + subdir: 'scipy_dae/integrate/_dae/tests', + install_tag: 'tests' +) \ No newline at end of file diff --git a/scipy_dae/integrate/meson.build b/scipy_dae/integrate/meson.build new file mode 100644 index 0000000..15037f1 --- /dev/null +++ b/scipy_dae/integrate/meson.build @@ -0,0 +1,7 @@ +py3.install_sources([ + '__init__.py', + ], + subdir: 'scipy_dae/integrate' +) + +subdir('_dae') \ No newline at end of file diff --git a/scipy_dae/meson.build b/scipy_dae/meson.build new file mode 100644 index 0000000..5703b87 --- /dev/null +++ b/scipy_dae/meson.build @@ -0,0 +1,10 @@ +python_sources = [ + '__init__.py', +] + +py3.install_sources( + python_sources, + subdir: 'scipy_dae' +) + +subdir('integrate') \ No newline at end of file