Unverified Commit 5b015890 authored by Saurav Maheshkar's avatar Saurav Maheshkar Committed by GitHub
Browse files

chore: migrate config files to `pyproject.toml` (#1373)



* chore: move configs to pyproject.toml

* fix: drop file from CI workflow

* feat: reorder pytest markers

* chore: retain comments

* chore(build): migrate build data to pyproject
Co-authored-by: default avatarMatthew Douglas <38992547+matthewdouglas@users.noreply.github.com>

* Apply suggestions from code review
Co-authored-by: default avatarAarni Koskela <akx@iki.fi>

* chore: move configs to pyproject.toml

* Apply suggestions from code review
Co-authored-by: default avatarAarni Koskela <akx@iki.fi>

* bump ruff

---------
Co-authored-by: default avatarMatthew Douglas <38992547+matthewdouglas@users.noreply.github.com>
Co-authored-by: default avatarAarni Koskela <akx@iki.fi>
parent 032beb95
...@@ -14,7 +14,6 @@ on: ...@@ -14,7 +14,6 @@ on:
- "requirements*.txt" - "requirements*.txt"
- "setup.py" - "setup.py"
- "pyproject.toml" - "pyproject.toml"
- "pytest.ini"
release: release:
types: [published] types: [published]
workflow_dispatch: {} # Allow manual trigger workflow_dispatch: {} # Allow manual trigger
......
[build-system] [build-system]
requires = [ "setuptools", "wheel" ] requires = ["setuptools >= 63.0.0"]
build-backend = "setuptools.build_meta" build-backend = "setuptools.build_meta"
[project]
name = "bitsandbytes"
dynamic = ["version"]
description = "k-bit optimizers and matrix multiplication routines."
authors = [{name="Tim Dettmers", email="dettmers@cs.washington.edu"}]
requires-python = ">=3.8"
readme = "README.md"
license = {file="LICENSE"}
keywords = [
"gpu",
"optimizers",
"optimization",
"8-bit",
"quantization",
"compression"
]
classifiers = [
"Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Environment :: GPU :: NVIDIA CUDA :: 11",
"Environment :: GPU :: NVIDIA CUDA :: 12",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Programming Language :: C++",
"Programming Language :: Python :: Implementation :: CPython",
"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",
"Topic :: Scientific/Engineering :: Artificial Intelligence"
]
dependencies = [
"torch>=1.11,!=1.12.0",
"numpy>=1.17"
]
[project.optional-dependencies]
benchmark = ["pandas", "matplotlib"]
docs = ["hf-doc-builder==0.5.0"]
dev = [
"bitsandbytes[test]",
"build>=1.0.0,<2",
"ruff==0.6.9",
"pre-commit>=3.5.0,<4",
"wheel>=0.42,<1"
]
test = [
"einops~=0.6.0",
"lion-pytorch==0.0.6",
"pytest~=7.4",
"scipy>=1.10.1,<2; python_version < '3.9'",
"scipy>=1.11.4,<2; python_version >= '3.9'",
"transformers>=4.30.1,<5"
]
triton = ["triton~=2.0.0; sys_platform=='linux' and platform_machine=='x86_64'"]
[project.urls]
homepage = "https://github.com/TimDettmers/bitsandbytes"
changelog = "https://github.com/TimDettmers/bitsandbytes/blob/main/CHANGELOG.md"
docs = "https://huggingface.co/docs/bitsandbytes/main"
issues = "https://github.com/TimDettmers/bitsandbytes/issues"
[tool.setuptools]
package-data = { "*" = ["libbitsandbytes*.*"] }
[tool.setuptools.dynamic]
version = {attr = "bitsandbytes.__version__"}
[tool.pytest.ini_options]
addopts = "-rP"
# ; --cov=bitsandbytes
# ; # contexts: record which test ran which line; can be seen in html coverage report
# ; --cov-context=test
# ; --cov-report html
log_cli = true
log_cli_level = "INFO"
log_file = "logs/pytest.log"
markers = [
"benchmark: mark test as a benchmark",
"deprecated: mark test as covering a deprecated feature",
"slow: mark test as slow",
]
[tool.ruff] [tool.ruff]
src = [ src = [
"bitsandbytes", "bitsandbytes",
......
[pytest]
addopts = -rP
; --cov=bitsandbytes
; # contexts: record which test ran which line; can be seen in html coverage report
; --cov-context=test
; --cov-report html
log_cli = True
log_cli_level = INFO
log_file = logs/pytest.log
markers =
benchmark: mark test as benchmark
slow: mark test as slow
deprecated: mark test as covering a deprecated feature
# Requirements used for GitHub actions
pytest==8.3.3
einops==0.8.0
lion-pytorch==0.2.2
scipy==1.10.1; python_version < "3.9"
scipy==1.14.1; python_version >= "3.9"
# Requirements used for local development
setuptools>=63
pytest~=8.3.3
einops~=0.8.0
wheel~=0.44.0
lion-pytorch~=0.2.2
scipy~=1.14.1
pandas~=2.2.2
matplotlib~=3.9.2
...@@ -2,20 +2,9 @@ ...@@ -2,20 +2,9 @@
# #
# This source code is licensed under the MIT license found in the # This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree. # LICENSE file in the root directory of this source tree.
import glob
import os
from setuptools import find_packages, setup from setuptools import find_packages, setup
from setuptools.dist import Distribution from setuptools.dist import Distribution
libs = list(glob.glob("./bitsandbytes/libbitsandbytes*.*"))
libs = [os.path.basename(p) for p in libs]
print("libs:", libs)
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname), encoding="utf8").read()
# Tested with wheel v0.29.0 # Tested with wheel v0.29.0
class BinaryDistribution(Distribution): class BinaryDistribution(Distribution):
...@@ -23,27 +12,4 @@ class BinaryDistribution(Distribution): ...@@ -23,27 +12,4 @@ class BinaryDistribution(Distribution):
return True return True
setup( setup(version="0.45.1.dev0", packages=find_packages(), distclass=BinaryDistribution)
name="bitsandbytes",
version="0.45.1.dev0",
author="Tim Dettmers",
author_email="dettmers@cs.washington.edu",
description="k-bit optimizers and matrix multiplication routines.",
license="MIT",
keywords="gpu optimizers optimization 8-bit quantization compression",
url="https://github.com/bitsandbytes-foundation/bitsandbytes",
packages=find_packages(),
package_data={"": libs},
install_requires=["torch", "numpy", "typing_extensions>=4.8.0"],
extras_require={
"benchmark": ["pandas", "matplotlib"],
"test": ["scipy", "lion_pytorch"],
},
long_description=read("README.md"),
long_description_content_type="text/markdown",
classifiers=[
"Development Status :: 4 - Beta",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
],
distclass=BinaryDistribution,
)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment