forked from dschaurecker/bitepy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
116 lines (98 loc) · 4.23 KB
/
pyproject.toml
File metadata and controls
116 lines (98 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
[build-system]
# Specifies that scikit-build-core is needed to build the package
requires = [
"scikit-build-core>=0.7", # Use scikit-build-core for CMake projects
"pybind11>=2.5.0", # Often needed during build time for pybind11 projects
# "numpy>=1.16.0", # If headers are needed during build
]
build-backend = "scikit_build_core.build"
[project]
name = "bitepy"
version = "0.6.16"
authors = [
{ name="David Schaurecker", email="dschaurecker@gmail.com" },
]
description = "A Python wrapper for my C++ battery CID arbitrage simulation engine."
readme = "README.md"
requires-python = ">=3.8"
license = { file = "LICENSE" } # Or use license-files below
classifiers = [
"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",
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: MIT License", # Assuming MIT license
"Operating System :: OS Independent", # Check if this is true, C++ might add dependencies
"Development Status :: 4 - Beta",
# Add others like: Intended Audience, Development Status, Topic
# e.g., "Development Status :: 4 - Beta",
# e.g., "Intended Audience :: Science/Research",
# e.g., "Topic :: Scientific/Engineering",
]
# Runtime dependencies from install_requires in setup.py
dependencies = [
"numpy>=1.16.0",
"pandas>=0.24.0",
"polars>=1.0.0",
"matplotlib>=3.0.0",
"tqdm>=4.0.0",
]
[project.urls]
# Update these URLs to your actual project locations
Homepage = "https://github.com/dschaurecker/bitepy" # Example URL
Issues = "https://github.com/dschaurecker/bitepy/issues" # Example URL
Documentation = "https://dschaurecker.github.io/bitepy/" # Example URL
[tool.scikit-build]
# This section configures scikit-build-core
# Often, minimal configuration is needed here if CMakeLists.txt is well-structured.
# Specifies the minimum CMake version required by your project.
cmake.version = ">=3.18"
# A list of packages to auto-copy into the wheel. If this is not set, it will
# default to the first of ``src/<package>``, ``python/<package>``, or
# ``<package>`` if they exist. The prefix(s) will be stripped from the package
# name inside the wheel. If a dict, provides a mapping of package name to source
# directory.
wheel.packages = ["bitepy"]
# Settings related to wheel building
# wheel.py-api = "cp38" # Specifies the Python C-API version, e.g., cp38 for Python 3.8+
# Adjust if you target older versions or use limited API.
# include_package_data=True and package_data from setup.py:
# Data files should typically be handled by CMake's `install` commands
# or listed in a MANIFEST.in file. Ensure your CMakeLists.txt installs
# any necessary non-code files (like the contents of 'bins/*')
# to the correct location within the package.
# scikit-build-core will respect MANIFEST.in if present.
# zip_safe=False is generally implied for packages with C extensions
# and handled correctly by scikit-build-core when building wheels.
[tool.cibuildwheel]
# === Configure Python versions here ===
# Uses CPython identifiers (cp<major><minor>)
build = ["cp38-*", "cp39-*", "cp310-*", "cp311-*", "cp312-*", "cp313-*"]
skip = [] # Optionally skip specific builds e.g. "*-musllinux_*"
# Configure architectures
archs = ["auto"] # Or specific like ["x86_64", "aarch64"]
# Environment variables can also be set here instead of the workflow file
[tool.cibuildwheel.environment]
CMAKE_CXX_STANDARD = "20"
CMAKE_CXX_STANDARD_REQUIRED = "ON"
CMAKE_CXX_FLAGS = "-std=c++20"
BUILD_VERBOSE = "1"
# Platform-specific configurations for installing dependencies
[tool.cibuildwheel.linux]
before-all = [
# Install cURL development libraries for manylinux containers
"yum install -y libcurl-devel || (apt-get update && apt-get install -y libcurl4-openssl-dev) || apk add --no-cache curl-dev",
]
[tool.cibuildwheel.macos]
before-all = [
# cURL is usually already available on macOS, but ensure dev headers are present
"echo 'cURL should be available on macOS by default'",
]
[tool.cibuildwheel.windows]
before-all = [
# Windows: Use vcpkg to install curl
"vcpkg install curl",
]