Extract one time password (OTP) secrets from QR codes exported by two-factor authentication (2FA) apps such as "Google Authenticator". The exported QR codes from authentication apps can be captured by camera, read from images, or read from text files. The secrets can be exported to JSON or CSV, or printed as QR codes to console.
Added support for the environment variable
SETUPTOOLS_DANGEROUSLY_SKIP_PYPROJECT_VALIDATION=true, allowing users to bypass
the validation of pyproject.toml.
This option should be used only as a last resort when resolving dependency
issues, as it may lead to improper functioning.
Users who enable this setting are responsible for ensuring that pyproject.toml
complies with setuptools requirements. (#4611)
Remove dependency on importlib_resources
and the vendored copy of the library.
Instead, setuptools consistently rely on stdlib's importlib.resources
(available on Python 3.9+). (#4718)
Setuptools' bdist_wheel implementation no longer produces wheels with
the m SOABI flag (pymalloc-related).
This flag was removed on Python 3.8+ (see :obj:sys.abiflags). (#4718)
Updated vendored packaging version to 24.2. (#4740)
Bugfixes
Merge with pypa/distutils@251797602, including fix for dirutil.mkpath handling in pypa/distutils#304.
v75.3.0
Features
Allowed using dict as an ordered type in setuptools.dist.check_requirements -- by :user:Avasam (#4575)
Bugfixes
Ensured methods in setuptools.modified preferably raise a consistent
distutils.errors.DistutilsError type
(except in the deprecated use case of SETUPTOOLS_USE_DISTUTILS=stdlib)
-- by :user:Avasam (#4567)
Fix the ABI tag when building a wheel using the debug build of Python 3.13 on Windows. Previously, the ABI tag was missing the "d" flag. (#4674)
Fix clashes for optional-dependencies in pyproject.toml and
extra_requires in setup.cfg/setup.py.
As per PEP 621, optional-dependencies have to be honoured and dynamic
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps setuptools from 75.2.0 to 75.4.0.
Changelog
Sourced from setuptools's changelog.
... (truncated)
Commits
8f5559c
Bump version: 75.3.0 → 75.4.06cc5f08
Update mypy requirement from ==1.12.* to >=1.12,<1.14 (#4700)748c851
Update mypy requirement from ==1.12.* to >=1.12,<1.14c9d980f
Refactor/unify/extractshutil.rmtree
callbacks (and avoid repetition) (#4682)db2b206
Extract test for shutil.rmtree callback to its own filebb93502
Add docstring8272bc3
Refactor usage of shutil.rmtree in other parts of setuptools6ddac39
Ignore some lines for coverageb9be144
Attempt to solve typechecking problems1678730
Extract common pattern to remove dir if exists to setuptools._shutilDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show