|
| 1 | +# Core build system configuration |
| 2 | +[build-system] |
| 3 | +# Required packages for building the project |
| 4 | +requires = [ |
| 5 | + # "scikit-build-core >= 0.9.10", |
| 6 | + "setuptools_scm>=8", # For version management |
| 7 | + "setuptools>=61.0.0", # For building the package |
| 8 | + "pytest>=8.0.0", # For running tests |
| 9 | +] |
| 10 | +# build-backend = "scikit_build_core.build" |
| 11 | +build-backend = "setuptools.build_meta" |
| 12 | + |
| 13 | +[project] |
| 14 | +# Basic project metadata |
| 15 | +name = "qc-PyCI" |
| 16 | +description = "PyCI: A flexible quantum chemistry CI library for Python 3." |
| 17 | +authors = [{name = "QC-Devs Community", email = "qcdevs@gmail.com"}] |
| 18 | +license = {file = "LICENSE"} |
| 19 | +readme = "README.md" |
| 20 | +dynamic = ["version"] # Version managed by setuptools_scm |
| 21 | + |
| 22 | +# Project classification and requirements |
| 23 | +keywords = [ |
| 24 | + "quantum chemistry", |
| 25 | + "configuration interaction", |
| 26 | + "theoretical chemistry" |
| 27 | +] |
| 28 | + |
| 29 | +classifiers = [ |
| 30 | + "Development Status :: 5 - Production/Stable", |
| 31 | + "Intended Audience :: Science/Research", |
| 32 | + "Intended Audience :: Developers", |
| 33 | + "Topic :: Scientific/Engineering :: Chemistry", |
| 34 | + "Topic :: Scientific/Engineering :: Physics", |
| 35 | + "Topic :: Scientific/Engineering :: Mathematics", |
| 36 | + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", |
| 37 | + "Programming Language :: Python :: 3.9", |
| 38 | + "Programming Language :: Python :: 3.10", |
| 39 | + "Programming Language :: Python :: 3.11", |
| 40 | + "Programming Language :: Python :: 3.12", |
| 41 | + "Programming Language :: Python :: 3", |
| 42 | + "Programming Language :: C++", |
| 43 | +] |
| 44 | +requires-python = ">=3.9" |
| 45 | + |
| 46 | +# Core dependencies |
| 47 | +dependencies = [ |
| 48 | + "numpy>=1.13", # Required for numerical operations |
| 49 | + "scipy>=1.0" # Required for scientific computations |
| 50 | +] |
| 51 | + |
| 52 | +# Optional feature sets |
| 53 | +[project.optional-dependencies] |
| 54 | +test = [ |
| 55 | + "pytest>=6.0", |
| 56 | + "pycodestyle", # For code style checking |
| 57 | + "pydocstyle" # For docstring style checking |
| 58 | +] |
| 59 | +doc = [ |
| 60 | + "sphinx", # Documentation generator |
| 61 | + "nbsphinx", # Jupyter notebook support in Sphinx |
| 62 | + "sphinx_rtd_theme" # ReadTheDocs theme |
| 63 | +] |
| 64 | + |
| 65 | +# Project URLs |
| 66 | +[project.urls] |
| 67 | +Homepage = "https://github.com/theochem/pyci" |
| 68 | +Source = "https://github.com/theochem/pyci" |
| 69 | +Issues = "https://github.com/theochem/pyci/issues" |
| 70 | +Documentation = "https://pyci.qcdevs.org/" |
| 71 | + |
| 72 | +# Package discovery and data files |
| 73 | +[tool.setuptools] |
| 74 | +# List of packages to include |
| 75 | +packages = [ |
| 76 | + "pyci", |
| 77 | + "pyci.fanci", |
| 78 | + "pyci.test", |
| 79 | + "pyci.fanci.test" |
| 80 | +] |
| 81 | + |
| 82 | +[tool.setuptools.package-data] |
| 83 | +# Non-Python files to include in the package |
| 84 | +"pyci" = [ |
| 85 | + "pyci.so", # Compiled C++ extension |
| 86 | + "include/*.h", # C++ header files |
| 87 | + "src/*.cpp" # C++ source files |
| 88 | +] |
| 89 | +"pyci.test" = [ |
| 90 | + "data/*.fcidump", # Test input files |
| 91 | + "data/*.npy", # NumPy data files |
| 92 | + "data/*.npz" # Compressed NumPy data files |
| 93 | +] |
| 94 | + |
| 95 | +# Build configuration |
| 96 | +[tool.scikit-build] |
| 97 | +sdist.exclude = [ |
| 98 | + ".github", |
| 99 | + "tests/data/*.fchk", |
| 100 | + "examples/*.fchk" |
| 101 | +] |
| 102 | +metadata.version.provider = "scikit_build_core.metadata.setuptools_scm" |
| 103 | + |
| 104 | +# Version management configuration |
| 105 | +[tool.setuptools_scm] |
| 106 | +# Enable setuptools-scm for version management |
0 commit comments