Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 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
8 changes: 0 additions & 8 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,4 @@
include LICENSE
include README*
include CONTRIBUTING.md
include *.py
recursive-include contributions *
recursive-include bin *
recursive-include doc *.py *.rst Makefile pip_requirements.txt
include src/psyclone/parse/lfric_builtins_mod.f90
include config/*.cfg
recursive-include examples *.py *.c *.cl *90 *.md Makefile *.mk
recursive-include tutorial *.ipynb
recursive-include lib *.py *.sh *.md Makefile *.mk *.jinja *90 doxyfile
147 changes: 147 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# -----------------------------------------------------------------------------
# BSD 3-Clause License
#
# Copyright (c) 2026, Science and Technology Facilities Council.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# * Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# -----------------------------------------------------------------------------

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "PSyclone"
dynamic = ["version"]
description = "PSyclone - a source-to-source and DSL Fortran compiler for HPC applications"
readme = "README.md"
authors = [
{ name = "Rupert Ford" },
{ name = "Andrew Porter", email = "andrew.porter@stfc.ac.uk" },
{ name = "Sergi Siso", email = "sergi.siso@stfc.ac.uk" },
{ name = "Aidan Chalk", email = "aidan.chalk@stfc.ac.uk" },
{ name = "Joerg Henrichs", email = "joerg.henrichs@bom.gov.au" }
]
license = { text = "BSD 3-Clause License" }
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Natural Language :: English",
"Programming Language :: Fortran",
"Programming Language :: Python",
"Topic :: Scientific/Engineering",
"Topic :: Software Development",
"Topic :: Utilities",
"Operating System :: POSIX",
"Operating System :: Unix",
"Operating System :: MacOS"
]
dependencies = [
"pyparsing",
"fparser==0.2.2",
"configparser",
"sympy",
"Jinja2",
"termcolor",
"graphviz"
]

[project.optional-dependencies]
doc = [
# Have to pin Sphinx to a pre-9.0 version because of
# https://github.com/sphinx-doc/sphinx/issues/14223
"sphinx<=8.3",
"sphinxcontrib.bibtex",
"sphinx_design",
"pydata-sphinx-theme",
"sphinx-autodoc-typehints",
"autoapi"
]
test = [
"flake8",
"flake8-pyproject",
"pylint",
"pytest-cov",
"pytest-xdist",
"tree-sitter",
"tree-sitter-fortran"
]
treesitter = [
"tree-sitter",
"tree-sitter-fortran"
]

[project.urls]
Homepage = "https://github.com/stfc/psyclone"
Download = "https://github.com/stfc/psyclone"

[tool.setuptools]
package-dir = { "" = "src" }
include-package-data = true
script-files = [
"bin/psyclone",
"bin/psyclone-kern",
"bin/psyad",
"bin/psyclonefc"
]

[tool.setuptools.packages.find]
where = ["src"]
exclude = ["psyclone.tests", "psyclone.tests.*"]

[tool.setuptools.dynamic]
version = { attr = "psyclone.version.__VERSION__" }

[tool.pytest.ini_options]
xfail_strict = true
addopts = "--ignore=external -p no:pep8"
filterwarnings = ["ignore::DeprecationWarning"]

[tool.flake8]
# Ignore E266 too many leading '#' for block comment since we use those for
# Doxygen markup.
extend-ignore = "E266"
# List of files and directories to exclude. Note we also ignore specific
# errors on specific lines with # noqa: <error> in a few other files.
exclude = [
".git",
"__pycache__",
"conf.py",
"__init__.py",
"tutorial/practicals/LFRic/single_node/1_openmp/omp_script.py",
"tutorial/practicals/LFRic/single_node/2_openacc/acc_parallel.py",
"tutorial/practicals/generic/2_profiling/profile_trans.py",
"tutorial/practicals/generic/3_openmp/omp_trans.py",
"tutorial/practicals/generic/4_openacc/kernels_trans.py",
"examples/nemo/eg4/dawn_script.py",
"external",
"build"
]
4 changes: 0 additions & 4 deletions pytest.ini

This file was deleted.

40 changes: 0 additions & 40 deletions requirements.txt

This file was deleted.

61 changes: 0 additions & 61 deletions setup.cfg

This file was deleted.

Loading
Loading