Remove setup.py (#842)

This commit is contained in:
Alex Gaynor 2024-07-22 12:45:49 -04:00 committed by GitHub
parent 11961aff4d
commit dd72470a42
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 107 deletions

View File

@ -102,7 +102,6 @@ jobs:
- {VERSION: "pypy-3.10", TOXENV: "pypy3"}
# MSRV
- {VERSION: "3.12", TOXENV: "py312", RUST_VERSION: "1.63.0"}
- {VERSION: "3.12", TOXENV: "py312", RUST_VERSION: "1.64.0"}
- {VERSION: "3.12", TOXENV: "py312", RUST_VERSION: "beta"}
- {VERSION: "3.12", TOXENV: "py312", RUST_VERSION: "nightly"}
@ -130,8 +129,6 @@ jobs:
toolchain: ${{ matrix.PYTHON.RUST_VERSION || 'stable' }}
- run: pip install tox
- if: matrix.PYTHON.RUST_VERSION == '1.63.0'
run: echo 'BCRYPT_ALLOW_RUST_163=1' >> $GITHUB_ENV
- run: tox
env:
TOXENV: ${{ matrix.PYTHON.TOXENV }}

View File

@ -1,9 +1,8 @@
[build-system]
# Must be kept in sync with `setup_requirements` in `setup.py`
requires = [
"setuptools>=42.0.0",
"wheel",
"setuptools-rust",
"setuptools-rust>=1.7.0",
]
# Point to the setuptools' PEP517 build backend explicitly to
# disable Pip's fallback guessing
@ -50,6 +49,11 @@ readme = {file = "README.rst", content-type = "text/x-rst"}
tests = ["pytest>=3.2.1,!=3.3.0"]
typecheck = ["mypy"]
[[tool.setuptools-rust.ext-modules]]
target = "bcrypt._bcrypt"
path = "src/_bcrypt/Cargo.toml"
py-limited-api = "auto"
rust-version = ">=1.64.0"
[tool.ruff]
line-length = 79

101
setup.py
View File

@ -1,101 +0,0 @@
import os
import platform
import re
import shutil
import subprocess
import sys
from setuptools import setup
try:
from setuptools_rust import RustExtension
except ImportError:
print(
"""
=============================DEBUG ASSISTANCE==========================
If you are seeing an error here please try the following to
successfully install bcrypt:
Upgrade to the latest pip and try again. This will fix errors for most
users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
=============================DEBUG ASSISTANCE==========================
"""
)
raise
if platform.python_implementation() == "PyPy":
if sys.pypy_version_info < (2, 6):
raise RuntimeError(
"bcrypt is not compatible with PyPy < 2.6. Please upgrade PyPy to "
"use this library."
)
try:
setup(
rust_extensions=[
RustExtension(
"bcrypt._bcrypt",
"src/_bcrypt/Cargo.toml",
py_limited_api="auto",
rust_version=(
">=1.64.0"
if os.environ.get("BCRYPT_ALLOW_RUST_163", "0") != "0"
else ">=1.63.0"
),
),
],
)
except:
# Note: This is a bare exception that re-raises so that we don't interfere
# with anything the installation machinery might want to do. Because we
# print this for any exception this msg can appear (e.g. in verbose logs)
# even if there's no failure. For example, SetupRequirementsError is raised
# during PEP517 building and prints this text. setuptools raises SystemExit
# when compilation fails right now, but it's possible this isn't stable
# or a public API commitment so we'll remain ultra conservative.
import pkg_resources
print(
"""
=============================DEBUG ASSISTANCE=============================
If you are seeing a compilation error please try the following steps to
successfully install bcrypt:
1) Upgrade to the latest pip and try again. This will fix errors for most
users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
2) Ensure you have a recent Rust toolchain installed. bcrypt requires
rustc >= 1.64.0. (1.63 may be used by setting the BCRYPT_ALLOW_RUST_163
environment variable)
"""
)
print(f" Python: {'.'.join(str(v) for v in sys.version_info[:3])}")
print(f" platform: {platform.platform()}")
for dist in ["pip", "setuptools", "setuptools_rust"]:
try:
version = pkg_resources.get_distribution(dist).version
except pkg_resources.DistributionNotFound:
version = "n/a"
print(f" {dist}: {version}")
version = "n/a"
if shutil.which("rustc") is not None:
try:
# If for any reason `rustc --version` fails, silently ignore it
rustc_output = subprocess.run(
["rustc", "--version"],
capture_output=True,
timeout=0.5,
encoding="utf8",
check=True,
).stdout
version = re.sub("^rustc ", "", rustc_output.strip())
except subprocess.SubprocessError:
pass
print(f" rustc: {version}")
print(
"""\
=============================DEBUG ASSISTANCE=============================
"""
)
raise

View File

@ -35,7 +35,7 @@ deps =
readme_renderer
commands =
check-manifest
python setup.py check --metadata --restructuredtext --strict
python3 -m readme_renderer README.rst -o /dev/null
[check-manifest]