Skip to content

Commit 9164c49

Browse files
authored
Add pyprojec.toml and remove setup.py (theochem#76)
* Remove setup.py to support pyproject.toml * Add initial version of pyproject.toml * Remove README.rst * Add README.md * Remove pytest installation as it's covered in pyproject.toml * Not using scikit-build at this stage * Cleaning up the dependencies * Fix missing pytest depedency * Fix missing dependencies * Clean up
1 parent bc5a034 commit 9164c49

File tree

5 files changed

+139
-130
lines changed

5 files changed

+139
-130
lines changed

.github/workflows/pypi_release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
run: |
6666
pip install --upgrade pip
6767
pip install -v .
68-
python -m pip install build setuptools wheel twine pytest
68+
pip install pytest build
6969
7070
- name: Build Source Distribution
7171
run: |

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!--
2+
This file is part of PyCI.
3+
4+
PyCI is free software: you can redistribute it and/or modify it under
5+
the terms of the GNU General Public License as published by the Free
6+
Software Foundation, either version 3 of the License, or (at your
7+
option) any later version.
8+
9+
PyCI is distributed in the hope that it will be useful, but WITHOUT
10+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12+
for more details.
13+
14+
You should have received a copy of the GNU General Public License
15+
along with PyCI. If not, see <http://www.gnu.org/licenses/>.
16+
-->
17+
18+
[![Python 3](http://img.shields.io/badge/python-3-blue.svg)](https://docs.python.org/3.8/)
19+
20+
# PyCI
21+
22+
PyCI is a flexible quantum chemistry Configuration Interaction library for Python 3.
23+
24+
PyCI is distributed under the GNU General Public License version 3 (GPLv3).
25+
See http://www.gnu.org/licenses/ for more information.
26+
27+
See http://pyci.qcdevs.org/ for up-to-date installation and usage instructions, as well as for
28+
tutorials and the API reference.
29+
30+
## Citing PyCI
31+
32+
See the CONTRIBUTORS file.

README.rst

Lines changed: 0 additions & 36 deletions
This file was deleted.

pyproject.toml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
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

setup.py

Lines changed: 0 additions & 93 deletions
This file was deleted.

0 commit comments

Comments
 (0)