Files
pylibbpf/pyproject.toml
2025-09-20 23:24:31 +05:30

104 lines
2.8 KiB
TOML

[build-system]
requires = [
"setuptools>=42",
"wheel",
"ninja",
"cmake>=4.0",
]
build-backend = "setuptools.build_meta"
[project]
name = "pylibbpf"
version = "0.0.1"
description = "Python Bindings for Libbpf"
authors = [
{ name = "r41k0u", email = "pragyanshchaturvedi18@gmail.com" },
{ name = "varun-r-mallya", email = "varunrmallya@gmail.com" }
]
readme = "README.md"
license = { text = "Apache-2.0" }
requires-python = ">=3.8"
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: POSIX :: Linux",
"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 :: C++",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Operating System Kernels :: Linux",
]
[project.optional-dependencies]
test = ["pytest>=6.0"]
[project.urls]
Homepage = "https://github.com/varun-r-mallya/pylibbpf"
Repository = "https://github.com/varun-r-mallya/pylibbpf"
Issues = "https://github.com/varun-r-mallya/pylibbpf/issues"
[tool.mypy]
files = "setup.py"
python_version = "3.8"
strict = true
show_error_codes = true
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
warn_unreachable = true
[[tool.mypy.overrides]]
module = ["ninja"]
ignore_missing_imports = true
[tool.pytest.ini_options]
minversion = "6.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
xfail_strict = true
filterwarnings = [
"error",
"ignore:(ast.Str|Attribute s|ast.NameConstant|ast.Num) is deprecated:DeprecationWarning:_pytest",
]
testpaths = ["tests"]
[tool.cibuildwheel]
build = ["cp38-*", "cp39-*", "cp310-*", "cp311-*", "cp312-*"]
skip = ["*-win32", "*-win_amd64", "*-macosx*", "pp*"]
# Build for both x86_64 and aarch64 on Linux
archs = ["x86_64", "aarch64"]
# Linux-specific settings
[tool.cibuildwheel.linux]
before-all = [
"yum install -y epel-release || apt-get update",
"yum install -y libbpf-devel kernel-headers || apt-get install -y libbpf-dev linux-headers-generic",
]
# Skip testing on emulated architectures (too slow)
test-skip = ["*_aarch64", "*_arm64"]
# Test command for supported architectures
test-command = "pytest {project}/tests"
test-extras = ["test"]
before-build = "rm -rf {project}/build"
environment = { CMAKE_BUILD_PARALLEL_LEVEL = "2" }
[tool.ruff]
target-version = "py38"
line-length = 88
[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
"I", # isort
"PGH", # pygrep-hooks
"RUF", # Ruff-specific
"UP", # pyupgrade
]