<86>Dec 19 05:16:05 userdel[3772375]: delete user 'rooter' <86>Dec 19 05:16:05 userdel[3772375]: removed group 'rooter' owned by 'rooter' <86>Dec 19 05:16:05 userdel[3772375]: removed shadow group 'rooter' owned by 'rooter' <86>Dec 19 05:16:05 groupadd[3772394]: group added to /etc/group: name=rooter, GID=1814 <86>Dec 19 05:16:05 groupadd[3772394]: group added to /etc/gshadow: name=rooter <86>Dec 19 05:16:05 groupadd[3772394]: new group: name=rooter, GID=1814 <86>Dec 19 05:16:05 useradd[3772413]: new user: name=rooter, UID=1814, GID=1814, home=/root, shell=/bin/bash, from=none <86>Dec 19 05:16:05 userdel[3772448]: delete user 'builder' <86>Dec 19 05:16:05 userdel[3772448]: removed group 'builder' owned by 'builder' <86>Dec 19 05:16:05 userdel[3772448]: removed shadow group 'builder' owned by 'builder' <86>Dec 19 05:16:05 groupadd[3772468]: group added to /etc/group: name=builder, GID=1815 <86>Dec 19 05:16:05 groupadd[3772468]: group added to /etc/gshadow: name=builder <86>Dec 19 05:16:05 groupadd[3772468]: new group: name=builder, GID=1815 <86>Dec 19 05:16:05 useradd[3772489]: new user: name=builder, UID=1815, GID=1815, home=/usr/src, shell=/bin/bash, from=none <13>Dec 19 05:16:09 rpmi: libmpdec3-2.5.1-alt3 sisyphus+314490.500.5.1 1675432004 installed <13>Dec 19 05:16:09 rpmi: libgdbm-1.8.3-alt10 sisyphus+346222.200.3.2 1716468404 installed <13>Dec 19 05:16:09 rpmi: libexpat-2.5.0-alt1 sisyphus+346180.200.2.1 1716349835 installed <13>Dec 19 05:16:09 rpmi: libb2-0.98.1-alt1_1 sisyphus+291614.100.1.1 1638962877 installed <13>Dec 19 05:16:09 rpmi: libp11-kit-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622573 installed <13>Dec 19 05:16:09 rpmi: libtasn1-4.19.0-alt3 sisyphus+327816.100.1.1 1692802615 installed <13>Dec 19 05:16:09 rpmi: rpm-macros-alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Dec 19 05:16:09 rpmi: alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Dec 19 05:16:09 rpmi: ca-certificates-2024.12.10-alt1 sisyphus+364633.200.3.1 1733918603 installed <13>Dec 19 05:16:09 rpmi: ca-trust-0.2.0-alt1 sisyphus+344843.100.1.1 1712743326 installed <13>Dec 19 05:16:09 rpmi: p11-kit-trust-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622573 installed <13>Dec 19 05:16:09 rpmi: libcrypto3-3.1.7-alt2 sisyphus+359910.100.1.1 1729080439 installed <13>Dec 19 05:16:09 rpmi: libssl3-3.1.7-alt2 sisyphus+359910.100.1.1 1729080439 installed <13>Dec 19 05:16:09 rpmi: python3-3.12.8-alt1 sisyphus+364336.100.1.1 1733526854 installed <13>Dec 19 05:16:10 rpmi: python3-base-3.12.8-alt1 sisyphus+364336.100.1.1 1733526854 installed <13>Dec 19 05:16:10 rpmi: python3-module-py3dephell-0.3.1-alt1 sisyphus+365261.200.1.1 1734463433 installed <13>Dec 19 05:16:10 rpmi: tests-for-installed-python3-pkgs-0.1.26-alt2 sisyphus+365350.100.1.1 1734517486 installed <13>Dec 19 05:16:10 rpmi: rpm-build-python3-0.1.26-alt2 sisyphus+365350.100.1.1 1734517486 installed <13>Dec 19 05:16:12 rpmi: python3-module-packaging-24.2-alt1 sisyphus+362183.100.1.1 1731315992 installed <13>Dec 19 05:16:12 rpmi: python3-module-system-seed-wheels-0.0.1-alt1 sisyphus+270533.400.6.1 1619683425 installed <13>Dec 19 05:16:12 rpmi: python3-module-more-itertools-10.5.0-alt1 sisyphus+357221.100.1.1 1725964420 installed <13>Dec 19 05:16:12 rpmi: python3-module-urllib3-2:2.2.3-alt1 sisyphus+357427.100.2.1 1726567364 installed <13>Dec 19 05:16:12 rpmi: libidn2-2.3.7-alt1 sisyphus+339505.100.1.2 1706718968 installed <13>Dec 19 05:16:12 rpmi: libnettle8-3.9.1-alt1 sisyphus+322548.100.1.2 1686176879 installed <13>Dec 19 05:16:12 rpmi: python3-module-jaraco.functools-4.1.0-alt1 sisyphus+358564.100.1.1 1727528718 installed <13>Dec 19 05:16:12 rpmi: python3-module-platformdirs-4.3.6-alt1 sisyphus+357787.200.1.1 1726664692 installed <13>Dec 19 05:16:12 rpmi: libhogweed6-3.9.1-alt1 sisyphus+322548.100.1.2 1686176879 installed <13>Dec 19 05:16:12 rpmi: libgnutls30-3.8.8-alt2 sisyphus+364832.100.1.1 1734007749 installed <13>Dec 19 05:16:12 rpmi: libngtcp2.16-1.9.1-alt1 sisyphus+363819.100.1.1 1733129254 installed <13>Dec 19 05:16:12 rpmi: libngtcp2_crypto_gnutls8-1.9.1-alt1 sisyphus+363819.100.1.1 1733129254 installed <13>Dec 19 05:16:12 rpmi: python3-module-pip-wheel-24.3.1-alt1 sisyphus+361010.100.1.1 1730124542 installed <13>Dec 19 05:16:12 rpmi: python3-module-setuptools-wheel-1:75.6.0-alt1 sisyphus+363072.100.1.1 1732185054 installed <13>Dec 19 05:16:12 rpmi: python3-module-wheel-wheel-0.45.1-alt1 sisyphus+363326.100.2.1 1732609968 installed <13>Dec 19 05:16:12 rpmi: python3-module-system-seed-wheels-wheels-0.0.1-alt1 sisyphus+270533.400.6.1 1619683425 installed <13>Dec 19 05:16:12 rpmi: python3-module-pyproject-metadata-0.9.0-alt1 sisyphus+360526.100.1.1 1729680788 installed <13>Dec 19 05:16:12 rpmi: python3-module-wheel-0.45.1-alt1 sisyphus+363326.100.2.1 1732609968 installed <13>Dec 19 05:16:12 rpmi: python3-module-tomli_w-1.1.0-alt1 sisyphus+359333.100.1.1 1728467136 installed <13>Dec 19 05:16:12 rpmi: python3-module-tomli-2.2.1-alt1 sisyphus+363592.100.1.1 1732803942 installed <13>Dec 19 05:16:12 rpmi: python3-module-pdm-alt-namespace-0.0.1-alt1 sisyphus+307894.100.1.1 1664987423 installed <13>Dec 19 05:16:12 rpmi: python3-module-markupsafe-1:3.0.2-alt1 sisyphus+360209.100.1.1 1729323052 installed <13>Dec 19 05:16:12 rpmi: python3-module-werkzeug-3.1.3-alt1 sisyphus+361875.200.2.1 1731337173 installed <13>Dec 19 05:16:12 rpmi: python3-module-mdurl-0.1.2-alt1 sisyphus+318894.1000.3.1 1682420700 installed <13>Dec 19 05:16:12 rpmi: python3-module-markdown-it-3.0.0-alt1 sisyphus+324665.100.1.1 1689081992 installed <13>Dec 19 05:16:12 rpmi: python3-module-jaraco.context-6.0.1-alt1 sisyphus+357809.300.1.1 1726769204 installed <13>Dec 19 05:16:12 rpmi: python3-module-pluggy-1.5.0-alt1 sisyphus+345632.100.2.1 1713864244 installed <13>Dec 19 05:16:12 rpmi: python3-module-iniconfig-2.0.0-alt1 sisyphus+314076.200.3.1 1674737275 installed <13>Dec 19 05:16:12 rpmi: python3-module-pytest-8.3.4-alt1 sisyphus+363889.100.1.1 1733152874 installed <13>Dec 19 05:16:12 rpmi: python3-module-filelock-3.16.1-alt1 sisyphus+357787.100.1.1 1726664660 installed <13>Dec 19 05:16:12 rpmi: python3-module-editables-0.5-alt1 sisyphus+325524.100.1.1 1690277257 installed <13>Dec 19 05:16:12 rpmi: python3-module-distlib-0.3.9-alt1 sisyphus+359423.100.1.1 1728557083 installed <13>Dec 19 05:16:12 rpmi: python3-module-idna-3.10-alt1 sisyphus+358681.100.1.1 1727701241 installed <13>Dec 19 05:16:12 rpmi: python3-module-charset-normalizer-3.2.0-alt1 sisyphus+347396.200.2.1 1714733155 installed <13>Dec 19 05:16:12 rpmi: python3-module-requests-2.32.3-alt1 sisyphus+349946.100.1.1 1717059877 installed <13>Dec 19 05:16:12 rpmi: python3-module-msgpack-1.0.7-alt1 sisyphus+340996.100.2.1 1708285630 installed <13>Dec 19 05:16:12 rpmi: python3-module-autocommand-2.2.2-alt1.1 sisyphus+339714.100.1.1 1706968174 installed <13>Dec 19 05:16:12 rpmi: python3-module-jaraco.text-4.0.0-alt1 sisyphus+353877.400.2.1 1722250727 installed <13>Dec 19 05:16:12 rpmi: python3-module-jaraco.collections-5.1.0-alt1 sisyphus+357809.200.1.1 1726769173 installed <13>Dec 19 05:16:12 rpmi: python3-module-pkg_resources-1:75.6.0-alt1 sisyphus+363072.100.1.1 1732185054 installed <13>Dec 19 05:16:13 rpmi: python3-module-Pygments-2.18.0-alt1 sisyphus+347552.100.1.1 1714992955 installed <13>Dec 19 05:16:13 rpmi: python3-module-pycparser-2.21-alt1.1 sisyphus+309935.7300.4.1 1668527005 installed <13>Dec 19 05:16:13 rpmi: python3-module-cffi-1.17.1-alt1 sisyphus+357396.100.1.1 1726156476 installed <13>Dec 19 05:16:13 rpmi: python3-module-cryptography-43.0.0-alt1 sisyphus+353417.100.1.1 1721731007 installed <13>Dec 19 05:16:13 rpmi: python3-module-openssl-24.2.1-alt1 sisyphus+353417.200.1.1 1721731036 installed <13>Dec 19 05:16:13 rpmi: mercurial-6.8.1-alt1 sisyphus+358552.100.1.1 1727504038 installed <13>Dec 19 05:16:13 rpmi: libpython3-3.12.8-alt1 sisyphus+364336.100.1.1 1733526854 installed <13>Dec 19 05:16:13 rpmi: libncurses6-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486705 installed <13>Dec 19 05:16:13 rpmi: libtinfo-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486705 installed <13>Dec 19 05:16:13 rpmi: libncurses-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486705 installed <13>Dec 19 05:16:14 rpmi: python3-dev-3.12.8-alt1 sisyphus+364336.100.1.1 1733526854 installed <13>Dec 19 05:16:14 rpmi: python3-module-setuptools-1:75.6.0-alt1 sisyphus+363072.100.1.1 1732185054 installed <13>Dec 19 05:16:14 rpmi: libssh2-1.11.0-alt2 sisyphus+339356.100.1.1 1706593137 installed <13>Dec 19 05:16:14 rpmi: publicsuffix-list-dafsa-20240911-alt1 sisyphus+357399.100.1.1 1726160479 installed <13>Dec 19 05:16:14 rpmi: libpsl-0.21.5-alt1 sisyphus+338474.100.1.1 1705684769 installed <13>Dec 19 05:16:14 rpmi: libnghttp3.9-1.6.0-alt1 sisyphus+363819.40.1.1 1733129194 installed <13>Dec 19 05:16:14 rpmi: libnghttp2-1.64.0-alt1 sisyphus+363795.200.2.1 1733118555 installed <13>Dec 19 05:16:14 rpmi: openldap-common-2.6.9-alt1 sisyphus+364781.100.1.1 1733971238 installed <13>Dec 19 05:16:14 rpmi: libntlm-1.5-alt1 sisyphus+278100.3300.1.1 1626058899 installed <13>Dec 19 05:16:14 rpmi: libidn-1.37-alt2 sisyphus+300849.100.1.1 1653769687 installed <13>Dec 19 05:16:14 rpmi: libbrotlicommon-1.1.0-alt1 sisyphus+328501.100.1.1 1693598419 installed <13>Dec 19 05:16:14 rpmi: libbrotlidec-1.1.0-alt1 sisyphus+328501.100.1.1 1693598419 installed <13>Dec 19 05:16:14 rpmi: libxxhash-0.8.2-alt1 sisyphus+336514.200.7.1 1702672118 installed <13>Dec 19 05:16:14 rpmi: liblz4-1:1.9.4-alt1 sisyphus+309416.100.1.1 1667412981 installed <13>Dec 19 05:16:14 rpmi: rsync-3.2.7-alt1 sisyphus+325006.2000.1.1 1689497333 installed <13>Dec 19 05:16:14 rpmi: openssh-common-9.6p1-alt2 sisyphus+351911.100.1.1 1719838544 installed <13>Dec 19 05:16:14 rpmi: libverto-0.3.2-alt1_1 sisyphus+321176.2200.10.2 1684803947 installed <13>Dec 19 05:16:14 rpmi: liblmdb-0.9.33-alt1 sisyphus+360625.100.1.1 1729819640 installed <13>Dec 19 05:16:14 rpmi: libkeyutils-1.6.3-alt1 sisyphus+346336.200.2.2 1716472658 installed <13>Dec 19 05:16:14 rpmi: libcom_err-1.47.1.0.10.ad56-alt2 sisyphus+363497.200.3.1 1732729908 installed <86>Dec 19 05:16:14 groupadd[3803436]: group added to /etc/group: name=_keytab, GID=999 <86>Dec 19 05:16:14 groupadd[3803436]: group added to /etc/gshadow: name=_keytab <86>Dec 19 05:16:14 groupadd[3803436]: new group: name=_keytab, GID=999 <13>Dec 19 05:16:14 rpmi: libkrb5-1.21.3-alt2 sisyphus+351857.100.1.1 1719735141 installed <13>Dec 19 05:16:14 rpmi: libgsasl18-2.2.1-alt2 sisyphus+359713.200.2.1 1728905430 installed <86>Dec 19 05:16:14 groupadd[3803738]: group added to /etc/group: name=sasl, GID=998 <86>Dec 19 05:16:14 groupadd[3803738]: group added to /etc/gshadow: name=sasl <86>Dec 19 05:16:14 groupadd[3803738]: new group: name=sasl, GID=998 <13>Dec 19 05:16:14 rpmi: libsasl2-3-2.1.28-alt2 sisyphus+343335.100.1.1 1711112544 installed <13>Dec 19 05:16:14 rpmi: libldap2-2.6.9-alt1 sisyphus+364781.100.1.1 1733971238 installed <13>Dec 19 05:16:14 rpmi: libcurl-8.11.1-alt1 sisyphus+364692.100.1.1 1733905204 installed <13>Dec 19 05:16:14 rpmi: libedit3-3.1.20230828-alt1 sisyphus+330914.200.3.1 1696922743 installed <86>Dec 19 05:16:14 groupadd[3803948]: group added to /etc/group: name=sshagent, GID=997 <86>Dec 19 05:16:14 groupadd[3803948]: group added to /etc/gshadow: name=sshagent <86>Dec 19 05:16:14 groupadd[3803948]: new group: name=sshagent, GID=997 <13>Dec 19 05:16:14 rpmi: openssh-clients-9.6p1-alt2 sisyphus+351911.100.1.1 1719838544 installed <13>Dec 19 05:16:14 rpmi: less-633-alt1 sisyphus+328181.300.2.1 1693321749 installed <13>Dec 19 05:16:14 rpmi: diffstat-1.64-alt1 sisyphus+346132.200.3.2 1716466240 installed <13>Dec 19 05:16:15 rpmi: git-core-2.42.2-alt1 sisyphus+348068.100.1.1 1715721632 installed <13>Dec 19 05:16:15 rpmi: python3-module-setuptools_scm-8.1.0-alt1 sisyphus+358552.200.1.1 1727504224 installed <13>Dec 19 05:16:15 rpmi: python3-module-requests_toolbelt-1.0.0-alt3 sisyphus+338996.100.1.1 1706201427 installed <13>Dec 19 05:16:15 rpmi: python3-module-rich-13.9.4-alt1 sisyphus+361780.100.1.1 1730842428 installed <13>Dec 19 05:16:15 rpmi: python3-module-cachecontrol-0.14.1-alt1 sisyphus+361708.100.1.1 1730793837 installed <13>Dec 19 05:16:15 rpmi: python3-module-unearth-0.12.1-alt1 sisyphus+330404.5000.15.1 1698684758 installed <13>Dec 19 05:16:15 rpmi: python3-module-virtualenv-20.28.0-alt1 sisyphus+363402.100.2.1 1732630993 installed <13>Dec 19 05:16:15 rpmi: python3-module-pdm-backend-2.4.3-alt1 sisyphus+360580.100.1.1 1729759710 installed <13>Dec 19 05:16:15 rpmi: python3-module-flaky-3.8.1-alt1 sisyphus+344119.100.1.1 1711967596 installed <13>Dec 19 05:16:15 rpmi: python3-module-pytest-httpserver-1.1.0-alt1 sisyphus+354948.100.1.1 1723435275 installed <13>Dec 19 05:16:15 rpmi: python3-module-pytest-mock-3.14.0-alt1 sisyphus+343327.100.2.2 1711118794 installed <13>Dec 19 05:16:15 rpmi: python3-module-dep-logic-0.0.4-alt1 sisyphus+337664.1700.3.1 1704822457 installed <13>Dec 19 05:16:15 rpmi: python3-module-findpython-0.4.1-alt1 sisyphus+337664.1000.3.1 1704822288 installed <13>Dec 19 05:16:15 rpmi: python3-module-tomlkit-0.13.2-alt1 sisyphus+358344.100.2.1 1727351286 installed <13>Dec 19 05:16:15 rpmi: python3-module-shellingham-1.5.4-alt1 sisyphus+332574.100.1.1 1698135363 installed <13>Dec 19 05:16:15 rpmi: python3-module-resolvelib-1.1.0-alt1 sisyphus+361352.200.2.1 1730462194 installed <13>Dec 19 05:16:15 rpmi: python3-module-python-dotenv-1.0.1-alt1 sisyphus+339410.100.1.1 1706637602 installed <13>Dec 19 05:16:15 rpmi: python3-module-pyproject_hooks-1.1.0-alt2 sisyphus+352023.500.4.2 1720458740 installed <13>Dec 19 05:16:15 rpmi: python3-module-installer-0.7.0-alt1 sisyphus+318881.100.2.1 1681988183 installed <13>Dec 19 05:16:15 rpmi: python3-module-first-2.0.2-alt1 sisyphus+307723.100.1.1 1664644579 installed <13>Dec 19 05:16:15 rpmi: python3-module-blinker-1.9.0-alt1 sisyphus+362571.300.7.1 1734000808 installed Building target platforms: x86_64 Building for target x86_64 Wrote: /usr/src/in/nosrpm/python3-module-pdm-2.11.2-alt1.nosrc.rpm (w1.gzdio) <13>Dec 19 05:16:16 rpmi: python3-module-pyproject-installer-0.5.5-alt1 sisyphus+362541.100.1.1 1731610714 installed Installing python3-module-pdm-2.11.2-alt1.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.24587 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf pdm-2.11.2 + echo 'Source #0 (pdm-2.11.2.tar):' Source #0 (pdm-2.11.2.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/pdm-2.11.2.tar + cd pdm-2.11.2 + /bin/chmod -c -Rf u+rwX,go-w . + '[' '!' -d .git ']' + git init hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /usr/src/RPM/BUILD/pdm-2.11.2/.git/ + git config user.email author@example.com + git config user.name author + git add . + git commit -m release [master (root-commit) a9b6ecb] release 343 files changed, 42450 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/doc.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .pre-commit-config.yaml create mode 100644 .pre-commit-hooks.yaml create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README_zh.md create mode 100644 SECURITY.md create mode 100644 chatbot/.gitignore create mode 100644 chatbot/app.py create mode 100644 chatbot/pdm.lock create mode 100644 chatbot/pyproject.toml create mode 100644 chatbot/requirements.txt create mode 100644 codecov.yml create mode 100644 docs/docs/assets/extra.css create mode 100644 docs/docs/assets/extra.js create mode 100644 docs/docs/assets/logo.svg create mode 100644 docs/docs/assets/logo_big.png create mode 100644 docs/docs/dev/benchmark.md create mode 100644 docs/docs/dev/changelog.md create mode 100644 docs/docs/dev/contributing.md create mode 100644 docs/docs/dev/fixtures.md create mode 100644 docs/docs/dev/write.md create mode 100644 docs/docs/index.md create mode 100644 docs/docs/reference/api.md create mode 100644 docs/docs/reference/build.md create mode 100644 docs/docs/reference/cli.md create mode 100644 docs/docs/reference/configuration.md create mode 100644 docs/docs/reference/pep621.md create mode 100644 docs/docs/usage/advanced.md create mode 100644 docs/docs/usage/config.md create mode 100644 docs/docs/usage/dependency.md create mode 100644 docs/docs/usage/hooks.md create mode 100644 docs/docs/usage/pep582.md create mode 100644 docs/docs/usage/project.md create mode 100644 docs/docs/usage/publish.md create mode 100644 docs/docs/usage/scripts.md create mode 100644 docs/docs/usage/template.md create mode 100644 docs/docs/usage/venv.md create mode 100644 docs/mkdocs.yml create mode 100644 docs/overrides/main.html create mode 100644 docs/overrides/partials/integrations/analytics/custom.html create mode 100644 install-pdm.py create mode 100644 news/2488.bugfix.md create mode 100644 news/2495.bugfix.md create mode 100644 news/2502.bugfix.md create mode 100644 news/2507.bugfix.md create mode 100644 news/2510.doc.md create mode 100644 news/towncrier_template.md create mode 100644 pdm.lock create mode 100644 pyproject.toml create mode 100644 setup.cfg create mode 100644 src/pdm/__main__.py create mode 100644 src/pdm/__version__.py create mode 100644 src/pdm/_types.py create mode 100644 src/pdm/builders/__init__.py create mode 100644 src/pdm/builders/base.py create mode 100644 src/pdm/builders/editable.py create mode 100644 src/pdm/builders/sdist.py create mode 100644 src/pdm/builders/wheel.py create mode 100644 src/pdm/cli/__init__.py create mode 100644 src/pdm/cli/actions.py create mode 100644 src/pdm/cli/commands/__init__.py create mode 100644 src/pdm/cli/commands/add.py create mode 100644 src/pdm/cli/commands/base.py create mode 100644 src/pdm/cli/commands/build.py create mode 100644 src/pdm/cli/commands/cache.py create mode 100644 src/pdm/cli/commands/completion.py create mode 100644 src/pdm/cli/commands/config.py create mode 100644 src/pdm/cli/commands/export.py create mode 100644 src/pdm/cli/commands/fix/__init__.py create mode 100644 src/pdm/cli/commands/fix/fixers.py create mode 100644 src/pdm/cli/commands/import_cmd.py create mode 100644 src/pdm/cli/commands/info.py create mode 100644 src/pdm/cli/commands/init.py create mode 100644 src/pdm/cli/commands/install.py create mode 100644 src/pdm/cli/commands/list.py create mode 100644 src/pdm/cli/commands/lock.py create mode 100644 src/pdm/cli/commands/publish/__init__.py create mode 100644 src/pdm/cli/commands/publish/package.py create mode 100644 src/pdm/cli/commands/publish/repository.py create mode 100644 src/pdm/cli/commands/remove.py create mode 100644 src/pdm/cli/commands/run.py create mode 100644 src/pdm/cli/commands/search.py create mode 100644 src/pdm/cli/commands/self_cmd.py create mode 100644 src/pdm/cli/commands/show.py create mode 100644 src/pdm/cli/commands/sync.py create mode 100644 src/pdm/cli/commands/update.py create mode 100644 src/pdm/cli/commands/use.py create mode 100644 src/pdm/cli/commands/venv/__init__.py create mode 100644 src/pdm/cli/commands/venv/activate.py create mode 100644 src/pdm/cli/commands/venv/backends.py create mode 100644 src/pdm/cli/commands/venv/create.py create mode 100644 src/pdm/cli/commands/venv/list.py create mode 100644 src/pdm/cli/commands/venv/purge.py create mode 100644 src/pdm/cli/commands/venv/remove.py create mode 100644 src/pdm/cli/commands/venv/utils.py create mode 100644 src/pdm/cli/completions/__init__.py create mode 100644 src/pdm/cli/completions/pdm.bash create mode 100644 src/pdm/cli/completions/pdm.fish create mode 100644 src/pdm/cli/completions/pdm.ps1 create mode 100644 src/pdm/cli/completions/pdm.zsh create mode 100644 src/pdm/cli/filters.py create mode 100644 src/pdm/cli/hooks.py create mode 100644 src/pdm/cli/options.py create mode 100644 src/pdm/cli/templates/__init__.py create mode 100644 src/pdm/cli/templates/default/.gitignore create mode 100644 src/pdm/cli/templates/default/README.md create mode 100644 src/pdm/cli/templates/default/__init__.py create mode 100644 src/pdm/cli/templates/default/pyproject.toml create mode 100644 src/pdm/cli/templates/default/src/example_package/__init__.py create mode 100644 src/pdm/cli/templates/default/tests/__init__.py create mode 100644 src/pdm/cli/utils.py create mode 100644 src/pdm/compat.py create mode 100644 src/pdm/core.py create mode 100644 src/pdm/environments/__init__.py create mode 100644 src/pdm/environments/base.py create mode 100644 src/pdm/environments/local.py create mode 100644 src/pdm/environments/python.py create mode 100644 src/pdm/exceptions.py create mode 100644 src/pdm/formats/__init__.py create mode 100644 src/pdm/formats/base.py create mode 100644 src/pdm/formats/flit.py create mode 100644 src/pdm/formats/pipfile.py create mode 100644 src/pdm/formats/poetry.py create mode 100644 src/pdm/formats/requirements.py create mode 100644 src/pdm/formats/setup_py.py create mode 100644 src/pdm/installers/__init__.py create mode 100644 src/pdm/installers/core.py create mode 100644 src/pdm/installers/installers.py create mode 100644 src/pdm/installers/manager.py create mode 100644 src/pdm/installers/packages.py create mode 100644 src/pdm/installers/synchronizers.py create mode 100644 src/pdm/installers/uninstallers.py create mode 100644 src/pdm/models/__init__.py create mode 100644 src/pdm/models/auth.py create mode 100644 src/pdm/models/backends.py create mode 100644 src/pdm/models/caches.py create mode 100644 src/pdm/models/candidates.py create mode 100644 src/pdm/models/environment.py create mode 100644 src/pdm/models/finder.py create mode 100644 src/pdm/models/in_process/__init__.py create mode 100644 src/pdm/models/in_process/get_abi_tag.py create mode 100644 src/pdm/models/in_process/parse_setup.py create mode 100644 src/pdm/models/in_process/pep508.py create mode 100644 src/pdm/models/in_process/sysconfig_get_paths.py create mode 100644 src/pdm/models/markers.py create mode 100644 src/pdm/models/project_info.py create mode 100644 src/pdm/models/python.py create mode 100644 src/pdm/models/python_max_versions.json create mode 100644 src/pdm/models/reporter.py create mode 100644 src/pdm/models/repositories.py create mode 100644 src/pdm/models/requirements.py create mode 100644 src/pdm/models/search.py create mode 100644 src/pdm/models/session.py create mode 100644 src/pdm/models/setup.py create mode 100644 src/pdm/models/specifiers.py create mode 100644 src/pdm/models/venv.py create mode 100644 src/pdm/models/versions.py create mode 100644 src/pdm/models/working_set.py create mode 100644 src/pdm/pep582/__init__.py create mode 100644 src/pdm/pep582/sitecustomize.py create mode 100644 src/pdm/project/__init__.py create mode 100644 src/pdm/project/config.py create mode 100644 src/pdm/project/core.py create mode 100644 src/pdm/project/lockfile.py create mode 100644 src/pdm/project/project_file.py create mode 100644 src/pdm/project/toml_file.py create mode 100644 src/pdm/py.typed create mode 100644 src/pdm/pytest.py create mode 100644 src/pdm/resolver/__init__.py create mode 100644 src/pdm/resolver/core.py create mode 100644 src/pdm/resolver/graph.py create mode 100644 src/pdm/resolver/providers.py create mode 100644 src/pdm/resolver/python.py create mode 100644 src/pdm/resolver/reporters.py create mode 100644 src/pdm/signals.py create mode 100644 src/pdm/termui.py create mode 100644 src/pdm/utils.py create mode 100644 tasks/complete.py create mode 100644 tasks/max_versions.py create mode 100644 tasks/release.py create mode 100644 tests/__init__.py create mode 100644 tests/cli/__init__.py create mode 100644 tests/cli/conftest.py create mode 100644 tests/cli/test_add.py create mode 100644 tests/cli/test_build.py create mode 100644 tests/cli/test_cache.py create mode 100644 tests/cli/test_config.py create mode 100644 tests/cli/test_fix.py create mode 100644 tests/cli/test_hooks.py create mode 100644 tests/cli/test_init.py create mode 100644 tests/cli/test_install.py create mode 100644 tests/cli/test_list.py create mode 100644 tests/cli/test_lock.py create mode 100644 tests/cli/test_others.py create mode 100644 tests/cli/test_publish.py create mode 100644 tests/cli/test_remove.py create mode 100644 tests/cli/test_run.py create mode 100644 tests/cli/test_self_command.py create mode 100644 tests/cli/test_template.py create mode 100644 tests/cli/test_update.py create mode 100644 tests/cli/test_use.py create mode 100644 tests/cli/test_utils.py create mode 100644 tests/cli/test_venv.py create mode 100644 tests/conftest.py create mode 100644 tests/fixtures/Pipfile create mode 100644 tests/fixtures/__init__.py create mode 100644 tests/fixtures/artifacts/PyFunctional-1.4.3-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/caj2pdf-restructured-0.1.0a6.tar.gz create mode 100644 tests/fixtures/artifacts/celery-4.4.2-py2.py3-none-any.whl create mode 100644 tests/fixtures/artifacts/demo-0.0.1-cp36-cp36m-win_amd64.whl create mode 100644 tests/fixtures/artifacts/demo-0.0.1-py2.py3-none-any.whl create mode 100644 tests/fixtures/artifacts/demo-0.0.1.tar.gz create mode 100644 tests/fixtures/artifacts/demo-0.0.1.zip create mode 100644 tests/fixtures/artifacts/editables-0.2-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/first-2.0.2-py2.py3-none-any.whl create mode 100644 tests/fixtures/artifacts/flit_core-3.6.0-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/future_fstrings-1.2.0-py2.py3-none-any.whl create mode 100644 tests/fixtures/artifacts/future_fstrings-1.2.0.tar.gz create mode 100644 tests/fixtures/artifacts/importlib_metadata-4.8.3-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/jmespath-0.10.0-py2.py3-none-any.whl create mode 100644 tests/fixtures/artifacts/pdm_backend-2.1.4-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/pdm_hello-0.1.0-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/pdm_hello-0.1.0-py3-none-win_amd64.whl create mode 100644 tests/fixtures/artifacts/pdm_pep517-1.0.0-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/poetry_core-1.3.2-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/setuptools-68.0.0-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/typing_extensions-4.4.0-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/wheel-0.37.1-py2.py3-none-any.whl create mode 100644 tests/fixtures/artifacts/zipp-3.6.0-py3-none-any.whl create mode 100644 tests/fixtures/artifacts/zipp-3.7.0-py3-none-any.whl create mode 100644 tests/fixtures/index/demo.html create mode 100644 tests/fixtures/index/future-fstrings.html create mode 100644 tests/fixtures/index/pep345-legacy.html create mode 100644 tests/fixtures/index/wheel.html create mode 100644 tests/fixtures/poetry-error.toml create mode 100644 tests/fixtures/poetry-new.toml create mode 100644 tests/fixtures/projects/__init__.py create mode 100644 tests/fixtures/projects/demo-#-with-hash/demo.py create mode 100644 tests/fixtures/projects/demo-#-with-hash/setup.py create mode 100644 tests/fixtures/projects/demo-combined-extras/demo.py create mode 100644 tests/fixtures/projects/demo-combined-extras/pyproject.toml create mode 100644 tests/fixtures/projects/demo-failure-no-dep/demo.py create mode 100644 tests/fixtures/projects/demo-failure-no-dep/setup.py create mode 100644 tests/fixtures/projects/demo-failure/demo.py create mode 100644 tests/fixtures/projects/demo-failure/setup.py create mode 100644 tests/fixtures/projects/demo-module/LICENSE create mode 100644 tests/fixtures/projects/demo-module/README.md create mode 100644 tests/fixtures/projects/demo-module/bar_module.py create mode 100644 tests/fixtures/projects/demo-module/foo_module.py create mode 100644 tests/fixtures/projects/demo-module/pyproject.toml create mode 100644 tests/fixtures/projects/demo-package-has-dep-with-extras/pdm.lock create mode 100644 tests/fixtures/projects/demo-package-has-dep-with-extras/pyproject.toml create mode 100644 tests/fixtures/projects/demo-package-has-dep-with-extras/requirements.txt create mode 100644 tests/fixtures/projects/demo-package/LICENSE create mode 100644 tests/fixtures/projects/demo-package/README.md create mode 100644 tests/fixtures/projects/demo-package/data_out.json create mode 100644 tests/fixtures/projects/demo-package/my_package/__init__.py create mode 100644 tests/fixtures/projects/demo-package/my_package/data.json create mode 100644 tests/fixtures/projects/demo-package/pdm.lock create mode 100644 tests/fixtures/projects/demo-package/pyproject.toml create mode 100644 tests/fixtures/projects/demo-package/requirements.ini create mode 100644 tests/fixtures/projects/demo-package/requirements.txt create mode 100644 tests/fixtures/projects/demo-package/requirements_simple.txt create mode 100644 tests/fixtures/projects/demo-package/setup.txt create mode 100644 tests/fixtures/projects/demo-package/single_module.py create mode 100644 tests/fixtures/projects/demo-parent-package/README.md create mode 100644 tests/fixtures/projects/demo-parent-package/package-a/foo.py create mode 100644 tests/fixtures/projects/demo-parent-package/package-a/setup.py create mode 100644 tests/fixtures/projects/demo-parent-package/package-b/bar.py create mode 100644 tests/fixtures/projects/demo-parent-package/package-b/pyproject.toml create mode 100644 tests/fixtures/projects/demo-prerelease/demo.py create mode 100644 tests/fixtures/projects/demo-prerelease/setup.py create mode 100644 tests/fixtures/projects/demo-src-package/LICENSE create mode 100644 tests/fixtures/projects/demo-src-package/README.md create mode 100644 tests/fixtures/projects/demo-src-package/data_out.json create mode 100644 tests/fixtures/projects/demo-src-package/pyproject.toml create mode 100644 tests/fixtures/projects/demo-src-package/single_module.py create mode 100644 tests/fixtures/projects/demo-src-package/src/my_package/__init__.py create mode 100644 tests/fixtures/projects/demo-src-package/src/my_package/data.json create mode 100644 tests/fixtures/projects/demo/demo.py create mode 100644 tests/fixtures/projects/demo/pyproject.toml create mode 100644 tests/fixtures/projects/demo_extras/demo.py create mode 100644 tests/fixtures/projects/demo_extras/setup.py create mode 100644 tests/fixtures/projects/flit-demo/README.rst create mode 100644 tests/fixtures/projects/flit-demo/doc/index.html create mode 100644 tests/fixtures/projects/flit-demo/flit.py create mode 100644 tests/fixtures/projects/flit-demo/pyproject.toml create mode 100644 tests/fixtures/projects/poetry-demo/mylib.py create mode 100644 tests/fixtures/projects/poetry-demo/pyproject.toml create mode 100644 tests/fixtures/projects/test-hatch-static/README.md create mode 100644 tests/fixtures/projects/test-hatch-static/pyproject.toml create mode 100644 tests/fixtures/projects/test-monorepo/README.md create mode 100644 tests/fixtures/projects/test-monorepo/core/core.py create mode 100644 tests/fixtures/projects/test-monorepo/core/pyproject.toml create mode 100644 tests/fixtures/projects/test-monorepo/package_a/alice.py create mode 100644 tests/fixtures/projects/test-monorepo/package_a/pyproject.toml create mode 100644 tests/fixtures/projects/test-monorepo/package_b/bob.py create mode 100644 tests/fixtures/projects/test-monorepo/package_b/pyproject.toml create mode 100644 tests/fixtures/projects/test-monorepo/pyproject.toml create mode 100644 tests/fixtures/projects/test-plugin-pdm/hello.py create mode 100644 tests/fixtures/projects/test-plugin-pdm/pyproject.toml create mode 100644 tests/fixtures/projects/test-plugin/hello.py create mode 100644 tests/fixtures/projects/test-plugin/setup.py create mode 100644 tests/fixtures/projects/test-removal/__init__.py create mode 100644 tests/fixtures/projects/test-removal/bar.py create mode 100644 tests/fixtures/projects/test-removal/foo.py create mode 100644 tests/fixtures/projects/test-removal/subdir/__init__.py create mode 100644 tests/fixtures/projects/test-setuptools/AUTHORS create mode 100644 tests/fixtures/projects/test-setuptools/README.md create mode 100644 tests/fixtures/projects/test-setuptools/mymodule.py create mode 100644 tests/fixtures/projects/test-setuptools/setup.cfg create mode 100644 tests/fixtures/projects/test-setuptools/setup.py create mode 100644 tests/fixtures/pypi.json create mode 100644 tests/fixtures/pyproject.toml create mode 100644 tests/fixtures/requirements-include.txt create mode 100644 tests/fixtures/requirements.txt create mode 100644 tests/models/__init__.py create mode 100644 tests/models/test_backends.py create mode 100644 tests/models/test_candidates.py create mode 100644 tests/models/test_marker.py create mode 100644 tests/models/test_requirements.py create mode 100644 tests/models/test_setup_parsing.py create mode 100644 tests/models/test_specifiers.py create mode 100644 tests/models/test_versions.py create mode 100644 tests/resolver/__init__.py create mode 100644 tests/resolver/test_resolve.py create mode 100644 tests/test_formats.py create mode 100644 tests/test_installer.py create mode 100644 tests/test_integration.py create mode 100644 tests/test_plugin.py create mode 100644 tests/test_project.py create mode 100644 tests/test_signals.py create mode 100644 tests/test_utils.py create mode 100644 tox.ini + git tag 2.11.2 + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.24587 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd pdm-2.11.2 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + /usr/bin/python3 -m pyproject_installer -v build INFO : pyproject_installer.build_cmd._build : Building wheel INFO : pyproject_installer.build_cmd._build : Source tree: /usr/src/RPM/BUILD/pdm-2.11.2 INFO : pyproject_installer.build_cmd._build : Output dir: /usr/src/RPM/BUILD/pdm-2.11.2/dist DEBUG : pyproject_installer.lib.build_backend : Validating source path DEBUG : pyproject_installer.lib.build_backend : Checking for PEP517 spec DEBUG : pyproject_installer.lib.build_backend : Parsing configuration file: /usr/src/RPM/BUILD/pdm-2.11.2/pyproject.toml INFO : backend_caller.py : Calling hook build_wheel in subprocess INFO : backend_caller.py : Build backend: pdm.backend INFO : backend_caller.py : Hook args: ['/usr/src/RPM/BUILD/pdm-2.11.2/dist'] INFO : backend_caller.py : Hook kwargs: {'config_settings': None} - Adding .pdm-build/pdm-2.11.2.dist-info/METADATA -> pdm-2.11.2.dist-info/METADATA - Adding .pdm-build/pdm-2.11.2.dist-info/WHEEL -> pdm-2.11.2.dist-info/WHEEL - Adding .pdm-build/pdm-2.11.2.dist-info/entry_points.txt -> pdm-2.11.2.dist-info/entry_points.txt - Adding .pdm-build/pdm-2.11.2.dist-info/licenses/LICENSE -> pdm-2.11.2.dist-info/licenses/LICENSE - Adding src/pdm/__main__.py -> pdm/__main__.py - Adding src/pdm/__version__.py -> pdm/__version__.py - Adding src/pdm/_types.py -> pdm/_types.py - Adding src/pdm/builders/__init__.py -> pdm/builders/__init__.py - Adding src/pdm/builders/base.py -> pdm/builders/base.py - Adding src/pdm/builders/editable.py -> pdm/builders/editable.py - Adding src/pdm/builders/sdist.py -> pdm/builders/sdist.py - Adding src/pdm/builders/wheel.py -> pdm/builders/wheel.py - Adding src/pdm/cli/__init__.py -> pdm/cli/__init__.py - Adding src/pdm/cli/actions.py -> pdm/cli/actions.py - Adding src/pdm/cli/commands/__init__.py -> pdm/cli/commands/__init__.py - Adding src/pdm/cli/commands/add.py -> pdm/cli/commands/add.py - Adding src/pdm/cli/commands/base.py -> pdm/cli/commands/base.py - Adding src/pdm/cli/commands/build.py -> pdm/cli/commands/build.py - Adding src/pdm/cli/commands/cache.py -> pdm/cli/commands/cache.py - Adding src/pdm/cli/commands/completion.py -> pdm/cli/commands/completion.py - Adding src/pdm/cli/commands/config.py -> pdm/cli/commands/config.py - Adding src/pdm/cli/commands/export.py -> pdm/cli/commands/export.py - Adding src/pdm/cli/commands/fix/__init__.py -> pdm/cli/commands/fix/__init__.py - Adding src/pdm/cli/commands/fix/fixers.py -> pdm/cli/commands/fix/fixers.py - Adding src/pdm/cli/commands/import_cmd.py -> pdm/cli/commands/import_cmd.py - Adding src/pdm/cli/commands/info.py -> pdm/cli/commands/info.py - Adding src/pdm/cli/commands/init.py -> pdm/cli/commands/init.py - Adding src/pdm/cli/commands/install.py -> pdm/cli/commands/install.py - Adding src/pdm/cli/commands/list.py -> pdm/cli/commands/list.py - Adding src/pdm/cli/commands/lock.py -> pdm/cli/commands/lock.py - Adding src/pdm/cli/commands/publish/__init__.py -> pdm/cli/commands/publish/__init__.py - Adding src/pdm/cli/commands/publish/package.py -> pdm/cli/commands/publish/package.py - Adding src/pdm/cli/commands/publish/repository.py -> pdm/cli/commands/publish/repository.py - Adding src/pdm/cli/commands/remove.py -> pdm/cli/commands/remove.py - Adding src/pdm/cli/commands/run.py -> pdm/cli/commands/run.py - Adding src/pdm/cli/commands/search.py -> pdm/cli/commands/search.py - Adding src/pdm/cli/commands/self_cmd.py -> pdm/cli/commands/self_cmd.py - Adding src/pdm/cli/commands/show.py -> pdm/cli/commands/show.py - Adding src/pdm/cli/commands/sync.py -> pdm/cli/commands/sync.py - Adding src/pdm/cli/commands/update.py -> pdm/cli/commands/update.py - Adding src/pdm/cli/commands/use.py -> pdm/cli/commands/use.py - Adding src/pdm/cli/commands/venv/__init__.py -> pdm/cli/commands/venv/__init__.py - Adding src/pdm/cli/commands/venv/activate.py -> pdm/cli/commands/venv/activate.py - Adding src/pdm/cli/commands/venv/backends.py -> pdm/cli/commands/venv/backends.py - Adding src/pdm/cli/commands/venv/create.py -> pdm/cli/commands/venv/create.py - Adding src/pdm/cli/commands/venv/list.py -> pdm/cli/commands/venv/list.py - Adding src/pdm/cli/commands/venv/purge.py -> pdm/cli/commands/venv/purge.py - Adding src/pdm/cli/commands/venv/remove.py -> pdm/cli/commands/venv/remove.py - Adding src/pdm/cli/commands/venv/utils.py -> pdm/cli/commands/venv/utils.py - Adding src/pdm/cli/completions/__init__.py -> pdm/cli/completions/__init__.py - Adding src/pdm/cli/completions/pdm.bash -> pdm/cli/completions/pdm.bash - Adding src/pdm/cli/completions/pdm.fish -> pdm/cli/completions/pdm.fish - Adding src/pdm/cli/completions/pdm.ps1 -> pdm/cli/completions/pdm.ps1 - Adding src/pdm/cli/completions/pdm.zsh -> pdm/cli/completions/pdm.zsh - Adding src/pdm/cli/filters.py -> pdm/cli/filters.py - Adding src/pdm/cli/hooks.py -> pdm/cli/hooks.py - Adding src/pdm/cli/options.py -> pdm/cli/options.py - Adding src/pdm/cli/templates/__init__.py -> pdm/cli/templates/__init__.py - Adding src/pdm/cli/templates/default/.gitignore -> pdm/cli/templates/default/.gitignore - Adding src/pdm/cli/templates/default/README.md -> pdm/cli/templates/default/README.md - Adding src/pdm/cli/templates/default/__init__.py -> pdm/cli/templates/default/__init__.py - Adding src/pdm/cli/templates/default/pyproject.toml -> pdm/cli/templates/default/pyproject.toml - Adding src/pdm/cli/templates/default/src/example_package/__init__.py -> pdm/cli/templates/default/src/example_package/__init__.py - Adding src/pdm/cli/templates/default/tests/__init__.py -> pdm/cli/templates/default/tests/__init__.py - Adding src/pdm/cli/utils.py -> pdm/cli/utils.py - Adding src/pdm/compat.py -> pdm/compat.py - Adding src/pdm/core.py -> pdm/core.py - Adding src/pdm/environments/__init__.py -> pdm/environments/__init__.py - Adding src/pdm/environments/base.py -> pdm/environments/base.py - Adding src/pdm/environments/local.py -> pdm/environments/local.py - Adding src/pdm/environments/python.py -> pdm/environments/python.py - Adding src/pdm/exceptions.py -> pdm/exceptions.py - Adding src/pdm/formats/__init__.py -> pdm/formats/__init__.py - Adding src/pdm/formats/base.py -> pdm/formats/base.py - Adding src/pdm/formats/flit.py -> pdm/formats/flit.py - Adding src/pdm/formats/pipfile.py -> pdm/formats/pipfile.py - Adding src/pdm/formats/poetry.py -> pdm/formats/poetry.py - Adding src/pdm/formats/requirements.py -> pdm/formats/requirements.py - Adding src/pdm/formats/setup_py.py -> pdm/formats/setup_py.py - Adding src/pdm/installers/__init__.py -> pdm/installers/__init__.py - Adding src/pdm/installers/core.py -> pdm/installers/core.py - Adding src/pdm/installers/installers.py -> pdm/installers/installers.py - Adding src/pdm/installers/manager.py -> pdm/installers/manager.py - Adding src/pdm/installers/packages.py -> pdm/installers/packages.py - Adding src/pdm/installers/synchronizers.py -> pdm/installers/synchronizers.py - Adding src/pdm/installers/uninstallers.py -> pdm/installers/uninstallers.py - Adding .pdm-build/pdm/models/VERSION -> pdm/models/VERSION - Adding src/pdm/models/__init__.py -> pdm/models/__init__.py - Adding src/pdm/models/auth.py -> pdm/models/auth.py - Adding src/pdm/models/backends.py -> pdm/models/backends.py - Adding src/pdm/models/caches.py -> pdm/models/caches.py - Adding src/pdm/models/candidates.py -> pdm/models/candidates.py - Adding src/pdm/models/environment.py -> pdm/models/environment.py - Adding src/pdm/models/finder.py -> pdm/models/finder.py - Adding src/pdm/models/in_process/__init__.py -> pdm/models/in_process/__init__.py - Adding src/pdm/models/in_process/get_abi_tag.py -> pdm/models/in_process/get_abi_tag.py - Adding src/pdm/models/in_process/parse_setup.py -> pdm/models/in_process/parse_setup.py - Adding src/pdm/models/in_process/pep508.py -> pdm/models/in_process/pep508.py - Adding src/pdm/models/in_process/sysconfig_get_paths.py -> pdm/models/in_process/sysconfig_get_paths.py - Adding src/pdm/models/markers.py -> pdm/models/markers.py - Adding src/pdm/models/project_info.py -> pdm/models/project_info.py - Adding src/pdm/models/python.py -> pdm/models/python.py - Adding src/pdm/models/python_max_versions.json -> pdm/models/python_max_versions.json - Adding src/pdm/models/reporter.py -> pdm/models/reporter.py - Adding src/pdm/models/repositories.py -> pdm/models/repositories.py - Adding src/pdm/models/requirements.py -> pdm/models/requirements.py - Adding src/pdm/models/search.py -> pdm/models/search.py - Adding src/pdm/models/session.py -> pdm/models/session.py - Adding src/pdm/models/setup.py -> pdm/models/setup.py - Adding src/pdm/models/specifiers.py -> pdm/models/specifiers.py - Adding src/pdm/models/venv.py -> pdm/models/venv.py - Adding src/pdm/models/versions.py -> pdm/models/versions.py - Adding src/pdm/models/working_set.py -> pdm/models/working_set.py - Adding src/pdm/pep582/__init__.py -> pdm/pep582/__init__.py - Adding src/pdm/pep582/sitecustomize.py -> pdm/pep582/sitecustomize.py - Adding src/pdm/project/__init__.py -> pdm/project/__init__.py - Adding src/pdm/project/config.py -> pdm/project/config.py - Adding src/pdm/project/core.py -> pdm/project/core.py - Adding src/pdm/project/lockfile.py -> pdm/project/lockfile.py - Adding src/pdm/project/project_file.py -> pdm/project/project_file.py - Adding src/pdm/project/toml_file.py -> pdm/project/toml_file.py - Adding src/pdm/py.typed -> pdm/py.typed - Adding src/pdm/pytest.py -> pdm/pytest.py - Adding src/pdm/resolver/__init__.py -> pdm/resolver/__init__.py - Adding src/pdm/resolver/core.py -> pdm/resolver/core.py - Adding src/pdm/resolver/graph.py -> pdm/resolver/graph.py - Adding src/pdm/resolver/providers.py -> pdm/resolver/providers.py - Adding src/pdm/resolver/python.py -> pdm/resolver/python.py - Adding src/pdm/resolver/reporters.py -> pdm/resolver/reporters.py - Adding src/pdm/signals.py -> pdm/signals.py - Adding src/pdm/termui.py -> pdm/termui.py - Adding src/pdm/utils.py -> pdm/utils.py - Adding pdm-2.11.2.dist-info/RECORD -> pdm-2.11.2.dist-info/RECORD INFO : pyproject_installer.build_cmd._build : Built wheel: pdm-2.11.2-py3-none-any.whl + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.8776 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-pdm-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-pdm-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/usr/bin:/bin:/usr/local/bin:/usr/games + cd pdm-2.11.2 + /usr/bin/python3 -m pyproject_installer -v install --destdir=/usr/src/tmp/python3-module-pdm-buildroot INFO : pyproject_installer.install_cmd._install : Installing wheel INFO : pyproject_installer.install_cmd._install : Wheel directory: /usr/src/RPM/BUILD/pdm-2.11.2/dist INFO : pyproject_installer.install_cmd._install : Wheel filename: pdm-2.11.2-py3-none-any.whl INFO : pyproject_installer.install_cmd._install : Destination: /usr/src/tmp/python3-module-pdm-buildroot DEBUG : pyproject_installer.lib.wheel : Parsing wheel filename DEBUG : pyproject_installer.lib.wheel : Validating wheel file DEBUG : pyproject_installer.lib.wheel : Validating wheel spec version DEBUG : pyproject_installer.lib.wheel : Parsing wheel spec metadata DEBUG : pyproject_installer.lib.wheel : Validating RECORD INFO : pyproject_installer.install_cmd._install : Wheel installation root: /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages INFO : pyproject_installer.install_cmd._install : Extracting wheel DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: pdm-2.11.2.dist-info/WHEEL DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: pdm-2.11.2.dist-info/licenses/LICENSE DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: pdm-2.11.2.dist-info/RECORD INFO : pyproject_installer.install_cmd._install : Generating entrypoints scripts DEBUG : pyproject_installer.lib.scripts : Installing console script: pdm INFO : pyproject_installer.install_cmd._install : Wheel was installed + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-pdm-buildroot (auto) removed './usr/lib/python3/site-packages/pdm/cli/templates/default/.gitignore' Verifying and fixing files in /usr/src/tmp/python3-module-pdm-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/python3-module-pdm-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-pdm-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-pdm-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/python3-module-pdm-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Splitting links to aliased files under /{,s}bin in /usr/src/tmp/python3-module-pdm-buildroot Bytecompiling python3 modules in /usr/src/tmp/python3-module-pdm-buildroot using /usr/bin/python3 compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/editable.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/sdist.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/wheel.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/fix/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/fix/fixers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/package.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/repository.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/activate.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/backends.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/create.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/list.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/purge.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/remove.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/utils.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/add.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/build.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/cache.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/completion.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/config.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/export.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/import_cmd.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/info.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/init.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/install.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/list.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/lock.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/remove.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/run.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/search.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/self_cmd.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/show.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/sync.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/update.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/use.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/completions/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/actions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/filters.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/hooks.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/options.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/utils.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/local.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/flit.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/pipfile.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/poetry.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/requirements.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/setup_py.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/installers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/manager.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/packages.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/synchronizers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/uninstallers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/get_abi_tag.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/parse_setup.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/pep508.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/sysconfig_get_paths.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/auth.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/backends.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/caches.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/candidates.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/environment.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/finder.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/markers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/project_info.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/reporter.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/repositories.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/requirements.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/search.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/session.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/setup.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/specifiers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/venv.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/versions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/working_set.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pep582/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pep582/sitecustomize.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/config.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/lockfile.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/project_file.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/toml_file.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/graph.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/providers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/reporters.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/__main__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/__version__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/_types.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/compat.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/exceptions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pytest.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/signals.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/termui.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/utils.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-pdm-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/editable.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/sdist.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/wheel.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/fix/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/fix/fixers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/package.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/repository.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/activate.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/backends.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/create.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/list.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/purge.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/remove.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/utils.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/add.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/build.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/cache.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/completion.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/config.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/export.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/import_cmd.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/info.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/init.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/install.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/list.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/lock.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/remove.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/run.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/search.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/self_cmd.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/show.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/sync.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/update.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/use.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/completions/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/actions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/filters.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/hooks.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/options.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/utils.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/local.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/flit.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/pipfile.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/poetry.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/requirements.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/setup_py.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/installers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/manager.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/packages.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/synchronizers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/uninstallers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/get_abi_tag.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/parse_setup.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/pep508.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/sysconfig_get_paths.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/auth.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/backends.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/caches.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/candidates.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/environment.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/finder.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/markers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/project_info.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/reporter.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/repositories.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/requirements.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/search.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/session.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/setup.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/specifiers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/venv.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/versions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/working_set.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pep582/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pep582/sitecustomize.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/config.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/lockfile.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/project_file.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/toml_file.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/graph.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/providers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/reporters.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/__main__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/__version__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/_types.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/compat.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/exceptions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pytest.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/signals.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/termui.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/utils.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-pdm-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/editable.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/sdist.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/builders/wheel.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/fix/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/fix/fixers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/package.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/publish/repository.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/activate.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/backends.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/create.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/list.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/purge.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/remove.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/venv/utils.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/add.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/build.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/cache.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/completion.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/config.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/export.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/import_cmd.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/info.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/init.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/install.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/list.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/lock.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/remove.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/run.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/search.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/self_cmd.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/show.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/sync.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/update.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/commands/use.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/completions/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/default/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/templates/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/actions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/filters.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/hooks.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/options.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/cli/utils.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/local.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/environments/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/base.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/flit.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/pipfile.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/poetry.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/requirements.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/formats/setup_py.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/installers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/manager.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/packages.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/synchronizers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/installers/uninstallers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/get_abi_tag.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/parse_setup.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/pep508.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/in_process/sysconfig_get_paths.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/auth.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/backends.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/caches.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/candidates.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/environment.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/finder.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/markers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/project_info.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/reporter.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/repositories.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/requirements.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/search.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/session.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/setup.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/specifiers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/venv.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/versions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/models/working_set.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pep582/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pep582/sitecustomize.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/config.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/lockfile.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/project_file.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/project/toml_file.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/__init__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/graph.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/providers.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/python.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/resolver/reporters.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/__main__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/__version__.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/_types.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/compat.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/core.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/exceptions.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/pytest.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/signals.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/termui.py compile /usr/src/tmp/python3-module-pdm-buildroot/usr/lib/python3/site-packages/pdm/utils.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/pdm/__pycache__/__main__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/__main__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/__main__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/__main__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/__version__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/__version__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/__version__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/__version__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/_types.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/_types.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/compat.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/compat.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/compat.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/compat.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/exceptions.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/exceptions.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/exceptions.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/exceptions.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/pytest.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/pytest.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/signals.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/signals.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/__pycache__/termui.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/__pycache__/termui.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/builders/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/builders/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/builders/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/builders/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/builders/__pycache__/base.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/builders/__pycache__/base.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/builders/__pycache__/editable.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/builders/__pycache__/editable.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/builders/__pycache__/sdist.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/builders/__pycache__/sdist.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/builders/__pycache__/wheel.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/builders/__pycache__/wheel.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/__pycache__/actions.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/__pycache__/actions.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/__pycache__/filters.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/__pycache__/filters.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/__pycache__/hooks.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/__pycache__/hooks.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/__pycache__/options.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/__pycache__/options.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/add.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/add.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/base.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/base.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/build.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/build.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/cache.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/cache.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/completion.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/completion.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/export.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/export.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/import_cmd.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/import_cmd.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/info.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/info.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/init.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/init.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/install.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/install.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/list.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/list.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/lock.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/lock.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/remove.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/remove.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/search.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/search.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/sync.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/sync.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/update.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/update.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/use.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/__pycache__/use.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/fix/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/fix/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/fix/__pycache__/fixers.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/fix/__pycache__/fixers.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/publish/__pycache__/package.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/publish/__pycache__/package.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/publish/__pycache__/repository.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/publish/__pycache__/repository.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/publish/__pycache__/repository.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/publish/__pycache__/repository.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/activate.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/activate.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/backends.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/backends.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/create.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/create.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/list.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/list.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/purge.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/purge.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/remove.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/remove.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/utils.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/commands/venv/__pycache__/utils.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/completions/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/completions/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/completions/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/completions/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/default/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/default/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/default/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/default/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/default/src/example_package/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/cli/templates/default/tests/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/environments/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/environments/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/environments/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/environments/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/environments/__pycache__/local.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/environments/__pycache__/local.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/environments/__pycache__/python.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/environments/__pycache__/python.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/base.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/base.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/flit.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/flit.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/pipfile.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/pipfile.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/pipfile.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/pipfile.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/poetry.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/poetry.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/setup_py.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/setup_py.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/formats/__pycache__/setup_py.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/formats/__pycache__/setup_py.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/installers/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/installers/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/installers/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/installers/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/installers/__pycache__/core.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/installers/__pycache__/core.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/installers/__pycache__/manager.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/installers/__pycache__/manager.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/installers/__pycache__/packages.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/installers/__pycache__/packages.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/installers/__pycache__/uninstallers.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/installers/__pycache__/uninstallers.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/backends.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/backends.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/environment.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/environment.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/environment.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/environment.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/finder.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/finder.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/markers.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/markers.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/project_info.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/project_info.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/project_info.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/project_info.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/python.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/python.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/reporter.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/reporter.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/reporter.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/reporter.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/search.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/search.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/session.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/session.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/setup.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/setup.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/__pycache__/working_set.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/__pycache__/working_set.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/get_abi_tag.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/get_abi_tag.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/parse_setup.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/parse_setup.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/parse_setup.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/parse_setup.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/pep508.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/pep508.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/pep508.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/pep508.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/sysconfig_get_paths.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/models/in_process/__pycache__/sysconfig_get_paths.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/pep582/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/pep582/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/pep582/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/pep582/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/pep582/__pycache__/sitecustomize.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/pep582/__pycache__/sitecustomize.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/project/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/project/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/project/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/project/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/project/__pycache__/config.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/project/__pycache__/config.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/project/__pycache__/lockfile.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/project/__pycache__/lockfile.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/project/__pycache__/project_file.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/project/__pycache__/project_file.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/project/__pycache__/toml_file.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/project/__pycache__/toml_file.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/__init__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/__init__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/core.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/core.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/graph.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/graph.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/providers.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/providers.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/python.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/python.cpython-312.pyc' './usr/lib/python3/site-packages/pdm/resolver/__pycache__/reporters.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/pdm/resolver/__pycache__/reporters.cpython-312.pyc' Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.63330 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd pdm-2.11.2 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export NO_INTERNET=YES + NO_INTERNET=YES + /usr/bin/python3 -m pyproject_installer run -- python3 -m pytest -k 'not network' INFO : Creating venv INFO : Installing console scripts INFO : Installing package: /usr/src/RPM/BUILD/pdm-2.11.2/dist/pdm-2.11.2-py3-none-any.whl INFO : Running command: ['/usr/src/RPM/BUILD/pdm-2.11.2/.run_venv/bin/python3', '-m', 'pyproject_installer', 'install', '/usr/src/RPM/BUILD/pdm-2.11.2/dist/pdm-2.11.2-py3-none-any.whl'] INFO : Running command: ['python3', '-m', 'pytest', '-k', 'not network'] ============================= test session starts ============================== platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 rootdir: /usr/src/RPM/BUILD/pdm-2.11.2 configfile: pyproject.toml testpaths: tests/ plugins: flaky-3.8.1, pytest_httpserver-1.1.0, mock-3.14.0 collected 825 items / 4 deselected / 821 selected tests/cli/test_add.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 3%] tests/cli/test_build.py F........F.F. [ 5%] tests/cli/test_cache.py FFFFF.F....F [ 6%] tests/cli/test_config.py FFFFFFF....FFF.... [ 9%] tests/cli/test_fix.py .FFFF [ 9%] tests/cli/test_hooks.py FFFFFFFFFFF......FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 15%] FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 20%] tests/cli/test_init.py FFFFFFFFF [ 21%] tests/cli/test_install.py FF.FFFFFFFFFFFFFF.FFFFFFFFF [ 25%] tests/cli/test_list.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 28%] tests/cli/test_lock.py F.FFFFFF.FFFFFFF...FFFFFFFFFFF [ 32%] tests/cli/test_others.py .FFFFFFFFFFFFFFFFFF [ 34%] tests/cli/test_publish.py .......FFF.. [ 36%] tests/cli/test_remove.py FFFFFFFFFF.FF [ 37%] tests/cli/test_run.py FFFF.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 43%] FFFFFFFF [ 44%] tests/cli/test_self_command.py FFFFFFFF [ 45%] tests/cli/test_template.py .... [ 46%] tests/cli/test_update.py FFFFFFFFFFFFFFFFF [ 48%] tests/cli/test_use.py FF...F [ 49%] tests/cli/test_utils.py F [ 49%] tests/cli/test_venv.py FFFFFFFFFFFFFFF.FFFFFFFFF...... [ 53%] tests/models/test_backends.py FFFF....... [ 54%] tests/models/test_candidates.py ........x......................... [ 58%] tests/models/test_marker.py ......... [ 59%] tests/models/test_requirements.py ..................... [ 62%] tests/models/test_setup_parsing.py .......... [ 63%] tests/models/test_specifiers.py ........................................ [ 68%] ........ [ 69%] tests/models/test_versions.py ................... [ 71%] tests/resolver/test_resolve.py .................................. [ 75%] tests/test_formats.py ................ [ 77%] tests/test_installer.py ......FFF....... [ 79%] tests/test_integration.py F [ 79%] tests/test_plugin.py FFFFF [ 80%] tests/test_project.py .............FFFFFFFF.......FFFFFF. [ 84%] tests/test_signals.py FF [ 84%] tests/test_utils.py ...............................s.................... [ 91%] ........................................................................ [100%] =================================== FAILURES =================================== ___________________________ test_add_package[False] ____________________________ project = working_set = dev_option = (), pdm = .caller at 0x7fc7de644900> def test_add_package(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "requests"], obj=project, strict=True) tests/cli/test_add.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ---------------------------- Captured stderr setup ----------------------------- INFO: Inside an active virtualenv /usr/src/RPM/BUILD/pdm-2.11.2/.run_venv, reusing it. Set env var PDM_IGNORE_ACTIVE_VENV to ignore it. ____________________________ test_add_package[True] ____________________________ project = working_set = dev_option = ('--dev',), pdm = .caller at 0x7fc7de4f37e0> def test_add_package(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "requests"], obj=project, strict=True) tests/cli/test_add.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_add_package_no_lock[False] ________________________ project = working_set = dev_option = (), pdm = .caller at 0x7fc7de529800> def test_add_package_no_lock(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "--no-lock", "-v", "requests"], obj=project, strict=True) tests/cli/test_add.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-lock', '-v', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_add_package_no_lock[True] ________________________ project = working_set = dev_option = ('--dev',), pdm = .caller at 0x7fc7de097b00> def test_add_package_no_lock(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "--no-lock", "-v", "requests"], obj=project, strict=True) tests/cli/test_add.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', '--no-lock', '-v', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_add_command _______________________________ project = pdm = .caller at 0x7fc7de0093a0> mocker = def test_add_command(project, pdm, mocker): do_add = mocker.patch("pdm.cli.commands.add.Command.do_add") pdm(["add", "requests"], obj=project) > do_add.assert_called_once() tests/cli/test_add.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'do_add' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_add_package_to_custom_group _______________________ project = working_set = pdm = .caller at 0x7fc7de027880> def test_add_package_to_custom_group(project, working_set, pdm): > pdm(["add", "requests", "--group", "test"], obj=project, strict=True) tests/cli/test_add.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--group', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_add_package_to_custom_dev_group _____________________ project = working_set = pdm = .caller at 0x7fc7de2a99e0> def test_add_package_to_custom_dev_group(project, working_set, pdm): > pdm(["add", "requests", "--group", "test", "--dev"], obj=project, strict=True) tests/cli/test_add.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--group', 'test', '--dev'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_add_editable_package ___________________________ project = working_set = pdm = .caller at 0x7fc7de3737e0> @pytest.mark.usefixtures("vcs") def test_add_editable_package(project, working_set, pdm): # Ensure that correct python version is used. project.environment.python_requires = PySpecSet(">=3.6") > pdm(["add", "--dev", "demo"], obj=project, strict=True) tests/cli/test_add.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', 'demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_add_editable_package_to_metadata_forbidden ________________ project = pdm = .caller at 0x7fc7de2ad940> @pytest.mark.usefixtures("vcs", "working_set") def test_add_editable_package_to_metadata_forbidden(project, pdm): project.environment.python_requires = PySpecSet(">=3.6") result = pdm(["add", "-v", "-e", "git+https://github.com/test-root/demo.git#egg=demo"], obj=project) > assert "PdmUsageError" in result.stderr E AssertionError: assert 'PdmUsageError' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_add.py:92: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_non_editable_override_editable ______________________ project = pdm = .caller at 0x7fc7de363a60> @pytest.mark.usefixtures("working_set", "vcs") def test_non_editable_override_editable(project, pdm): project.environment.python_requires = PySpecSet(">=3.6") url = "git+https://github.com/test-root/demo.git#egg=demo" > pdm(["add", "--dev", "-e", url], obj=project, strict=True) tests/cli/test_add.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', '-e', 'git+https://github.com/test-root/demo.git#egg=demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_add_remote_package_url[False] ______________________ project = dev_option = (), pdm = .caller at 0x7fc7de801d00> @pytest.mark.usefixtures("working_set") def test_add_remote_package_url(project, dev_option, pdm): project.environment.python_requires = PySpecSet(">=3.6") url = "http://fixtures.test/artifacts/demo-0.0.1-py2.py3-none-any.whl" > pdm(["add", *dev_option, url], obj=project, strict=True) tests/cli/test_add.py:110: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'http://fixtures.test/artifacts/demo-0.0.1-py2.py3-none-any.whl'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_add_remote_package_url[True] _______________________ project = dev_option = ('--dev',), pdm = .caller at 0x7fc7de10a340> @pytest.mark.usefixtures("working_set") def test_add_remote_package_url(project, dev_option, pdm): project.environment.python_requires = PySpecSet(">=3.6") url = "http://fixtures.test/artifacts/demo-0.0.1-py2.py3-none-any.whl" > pdm(["add", *dev_option, url], obj=project, strict=True) tests/cli/test_add.py:110: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', 'http://fixtures.test/artifacts/demo-0.0.1-py2.py3-none-any.whl'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________________ test_add_no_install ______________________________ project = working_set = pdm = .caller at 0x7fc7de139d00> def test_add_no_install(project, working_set, pdm): > pdm(["add", "--no-sync", "requests"], obj=project, strict=True) tests/cli/test_add.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-sync', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________________ test_add_package_save_exact __________________________ project = pdm = .caller at 0x7fc7de1042c0> @pytest.mark.usefixtures("repository") def test_add_package_save_exact(project, pdm): > pdm(["add", "--save-exact", "--no-sync", "requests"], obj=project, strict=True) tests/cli/test_add.py:127: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--save-exact', '--no-sync', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_add_package_save_wildcard ________________________ project = pdm = .caller at 0x7fc7dddda200> @pytest.mark.usefixtures("repository") def test_add_package_save_wildcard(project, pdm): > pdm(["add", "--save-wildcard", "--no-sync", "requests"], obj=project, strict=True) tests/cli/test_add.py:133: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--save-wildcard', '--no-sync', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_add_package_save_minimum _________________________ project = pdm = .caller at 0x7fc7dde08220> @pytest.mark.usefixtures("repository") def test_add_package_save_minimum(project, pdm): > pdm(["add", "--save-minimum", "--no-sync", "requests"], obj=project, strict=True) tests/cli/test_add.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--save-minimum', '--no-sync', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_add_package_update_reuse _________________________ project = repository = pdm = .caller at 0x7fc7dde598a0> def test_add_package_update_reuse(project, repository, pdm): > pdm(["add", "--no-sync", "--save-wildcard", "requests", "pytz"], obj=project, strict=True) tests/cli/test_add.py:144: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-sync', '--save-wildcard', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_add_package_update_eager _________________________ project = repository = pdm = .caller at 0x7fc7dddfbe20> def test_add_package_update_eager(project, repository, pdm): > pdm(["add", "--no-sync", "--save-wildcard", "requests", "pytz"], obj=project, strict=True) tests/cli/test_add.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-sync', '--save-wildcard', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_add_package_with_mismatch_marker _____________________ project = working_set = mocker = pdm = .caller at 0x7fc7de23e160> def test_add_package_with_mismatch_marker(project, working_set, mocker, pdm): mocker.patch( "pdm.environments.base.get_pep508_environment", return_value={"platform_system": "Darwin"}, ) > pdm(["add", "requests", "pytz; platform_system!='Darwin'"], obj=project, strict=True) tests/cli/test_add.py:204: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', "pytz; platform_system!='Darwin'"] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_add_dependency_from_multiple_parents ___________________ project = working_set = mocker = pdm = .caller at 0x7fc7de1b8040> def test_add_dependency_from_multiple_parents(project, working_set, mocker, pdm): mocker.patch( "pdm.environments.base.get_pep508_environment", return_value={"platform_system": "Darwin"}, ) > pdm(["add", "requests", "chardet; platform_system!='Darwin'"], obj=project, strict=True) tests/cli/test_add.py:213: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', "chardet; platform_system!='Darwin'"] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_add_packages_without_self ________________________ project = working_set = pdm = .caller at 0x7fc7de1f22a0> def test_add_packages_without_self(project, working_set, pdm): project.environment.python_requires = PySpecSet(">=3.6") > pdm(["add", "--no-self", "requests"], obj=project, strict=True) tests/cli/test_add.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_add_package_unconstrained_rewrite_specifier _______________ project = pdm = .caller at 0x7fc7ddf0fec0> @pytest.mark.usefixtures("working_set") def test_add_package_unconstrained_rewrite_specifier(project, pdm): project.environment.python_requires = PySpecSet(">=3.6") > pdm(["add", "--no-self", "django"], obj=project, strict=True) tests/cli/test_add.py:226: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', 'django'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_add_cached_vcs_requirement ________________________ project = mocker = pdm = .caller at 0x7fc7ddf460c0> @pytest.mark.usefixtures("working_set", "vcs") def test_add_cached_vcs_requirement(project, mocker, pdm): project.environment.python_requires = PySpecSet(">=3.6") url = "git+https://github.com/test-root/demo.git@1234567890abcdef#egg=demo" built_path = FIXTURES / "artifacts/demo-0.0.1-py2.py3-none-any.whl" wheel_cache = project.make_wheel_cache() cache_path = wheel_cache.get_path_for_link(Link(url), project.environment.target_python) if not cache_path.exists(): cache_path.mkdir(parents=True) shutil.copy2(built_path, cache_path) downloader = mocker.patch("unearth.finder.unpack_link") builder = mocker.patch("pdm.builders.WheelBuilder.build") > pdm(["add", "--no-self", url], obj=project, strict=True) tests/cli/test_add.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', 'git+https://github.com/test-root/demo.git@1234567890abcdef#egg=demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________________ test_add_with_dry_run _____________________________ project = pdm = .caller at 0x7fc7de49be20> @pytest.mark.usefixtures("repository") def test_add_with_dry_run(project, pdm): > result = pdm(["add", "--dry-run", "requests"], obj=project, strict=True) tests/cli/test_add.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dry-run', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________________ test_add_with_prerelease ___________________________ project = working_set = pdm = .caller at 0x7fc7de42a160> def test_add_with_prerelease(project, working_set, pdm): > pdm(["add", "--prerelease", "--save-compatible", "urllib3"], obj=project, strict=True) tests/cli/test_add.py:265: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--prerelease', '--save-compatible', 'urllib3'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_add_editable_package_with_extras _____________________ project = working_set = pdm = .caller at 0x7fc7de489ee0> def test_add_editable_package_with_extras(project, working_set, pdm): project.environment.python_requires = PySpecSet(">=3.6") dep_path = FIXTURES.joinpath("projects/demo").as_posix() > pdm(["add", "-dGdev", "-e", f"{dep_path}[security]"], obj=project, strict=True) tests/cli/test_add.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '-dGdev', '-e', '/usr/src/RPM/BUILD/pdm-2.11.2/tests/fixtures/projects/demo[security]'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_add_package_with_local_version ______________________ project = repository = working_set = pdm = .caller at 0x7fc7ddb2c0e0> def test_add_package_with_local_version(project, repository, working_set, pdm): repository.add_candidate("foo", "1.0a0+local") > pdm(["add", "-v", "foo"], obj=project, strict=True) tests/cli/test_add.py:282: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '-v', 'foo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_add_group_to_lockfile __________________________ project = working_set = pdm = .caller at 0x7fc7ddb25ee0> def test_add_group_to_lockfile(project, working_set, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_add.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_add_group_to_lockfile_without_package __________________ project = working_set = pdm = .caller at 0x7fc7ddac40e0> def test_add_group_to_lockfile_without_package(project, working_set, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, to_group="tz") > pdm(["install"], obj=project, strict=True) tests/cli/test_add.py:299: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_add_update_reuse_installed ________________________ project = working_set = repository = pdm = .caller at 0x7fc7ddb7e3e0> def test_add_update_reuse_installed(project, working_set, repository, pdm): working_set["foo"] = Distribution("foo", "1.0.0") repository.add_candidate("foo", "1.0.0") repository.add_candidate("foo", "1.1.0") > pdm(["add", "--update-reuse-installed", "foo"], obj=project, strict=True) tests/cli/test_add.py:311: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--update-reuse-installed', 'foo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_add_update_reuse_installed_config ____________________ project = working_set = repository = pdm = .caller at 0x7fc7dd8d8680> def test_add_update_reuse_installed_config(project, working_set, repository, pdm): working_set["foo"] = Distribution("foo", "1.0.0") repository.add_candidate("foo", "1.0.0") repository.add_candidate("foo", "1.1.0") project.project_config["strategy.update"] = "reuse-installed" > pdm(["add", "foo"], obj=project, strict=True) tests/cli/test_add.py:321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'foo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_build_command ______________________________ project = pdm = .caller at 0x7fc7dd8ad6c0> mocker = def test_build_command(project, pdm, mocker): do_build = mocker.patch.object(Command, "do_build") pdm(["build"], obj=project) > do_build.assert_called_once() tests/cli/test_build.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'do_build' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_cli_build_with_config_settings ______________________ fixture_project = .func at 0x7fc7ddc7c7c0> pdm = .caller at 0x7fc7ddc7d620> def test_cli_build_with_config_settings(fixture_project, pdm): project = fixture_project("demo-src-package") result = pdm(["build", "-C--plat-name=win_amd64"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_build.py:142: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_build_with_no_isolation[False] ______________________ fixture_project = .func at 0x7fc7ddd5d120> pdm = .caller at 0x7fc7ddd5d080>, isolated = False @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("isolated", (True, False)) def test_build_with_no_isolation(fixture_project, pdm, isolated): project = fixture_project("demo-failure") project.pyproject.set_data({"project": {"name": "demo", "version": "0.1.0"}}) project.pyproject.write() pdm(["add", "first"], obj=project) args = ["build"] if not isolated: args.append("--no-isolation") result = pdm(args, obj=project) > assert result.exit_code == int(isolated) E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code E + and 0 = int(False) tests/cli/test_build.py:157: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _______________________________ test_cache_list ________________________________ project = pdm = .caller at 0x7fc7ddbea5c0> @pytest.mark.usefixtures("prepare_wheel_cache") def test_cache_list(project, pdm): result = pdm(["cache", "list"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_cache.py:37: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_cache_list_pattern ____________________________ project = pdm = .caller at 0x7fc7ddc518a0> @pytest.mark.usefixtures("prepare_wheel_cache") def test_cache_list_pattern(project, pdm): result = pdm(["cache", "list", "ba*"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_cache.py:51: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_cache_remove_pattern ___________________________ project = pdm = .caller at 0x7fc7dd9711c0> @pytest.mark.usefixtures("prepare_wheel_cache", "prepare_http_cache") def test_cache_remove_pattern(project, pdm): result = pdm(["cache", "remove", "ba*"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_cache.py:69: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_cache_remove_wildcard __________________________ project = pdm = .caller at 0x7fc7ddd553a0> @pytest.mark.usefixtures("prepare_wheel_cache", "prepare_http_cache") def test_cache_remove_wildcard(project, pdm): result = pdm(["cache", "remove", "*"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_cache.py:89: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________________ test_cache_clear _______________________________ project = pdm = .caller at 0x7fc7dd847060> @pytest.mark.usefixtures("prepare_wheel_cache", "prepare_http_cache") def test_cache_clear(project, pdm): result = pdm(["cache", "clear"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_cache.py:105: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________________ test_cache_info ________________________________ project = pdm = .caller at 0x7fc7dd886020> @pytest.mark.usefixtures("prepare_wheel_cache", "prepare_http_cache") def test_cache_info(project, pdm): result = pdm(["cache", "info"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_cache.py:127: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_clear_package_cache ___________________________ project = pdm = .caller at 0x7fc7dd7011c0> def test_clear_package_cache(project, pdm): pkg = CachedPackage(project.cache("packages") / "test_package") pkg.path.mkdir() refer_pkg = project.root / "refer_pkg" refer_pkg.mkdir() pkg.add_referrer(str(refer_pkg)) assert len(pkg.referrers) == 1 pkg._referrers = None refer_pkg.rmdir() > pdm(["cache", "clear", "packages"], obj=project, strict=True) tests/cli/test_cache.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['cache', 'clear', 'packages'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_config_command ______________________________ project = pdm = .caller at 0x7fc7dd9dd940> def test_config_command(project, pdm): result = pdm(["config"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_config.py:9: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_config_get_command ____________________________ project = pdm = .caller at 0x7fc7dd79f4c0> def test_config_get_command(project, pdm): result = pdm(["config", "python.use_pyenv"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_config.py:19: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_config_set_command ____________________________ project = pdm = .caller at 0x7fc7dd614f40> def test_config_set_command(project, pdm): result = pdm(["config", "python.use_pyenv", "false"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_config.py:28: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_config_del_command ____________________________ project = pdm = .caller at 0x7fc7dd60ec00> def test_config_del_command(project, pdm): result = pdm(["config", "-l", "python.use_pyenv", "false"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_config.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_config_env_var_shadowing _________________________ project = pdm = .caller at 0x7fc7dd647d80> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7dd635460> def test_config_env_var_shadowing(project, pdm, monkeypatch): monkeypatch.setenv("PDM_PYPI_URL", "https://example.org/simple") result = pdm(["config", "pypi.url"], obj=project) > assert result.output.strip() == "https://example.org/simple" E AssertionError: assert '' == 'https://example.org/simple' E E - https://example.org/simple tests/cli/test_config.py:56: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________ test_config_project_global_precedence _____________________ project = pdm = .caller at 0x7fc7dd5ba340> def test_config_project_global_precedence(project, pdm): pdm(["config", "python.use_pyenv", "true"], obj=project) pdm(["config", "-l", "python.use_pyenv", "false"], obj=project) result = pdm(["config", "python.use_pyenv"], obj=project) > assert result.output.strip() == "False" E AssertionError: assert '' == 'False' E E - False tests/cli/test_config.py:73: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_specify_config_file ___________________________ tmp_path = PosixPath('/usr/src/tmp/pytest-of-builder/pytest-0/test_specify_config_file0') pdm = .caller at 0x7fc7dc9d37e0> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7dc9af530> def test_specify_config_file(tmp_path, pdm, monkeypatch): tmp_path.joinpath("global_config.toml").write_text("strategy.resolve_max_rounds = 1000\n") with cd(tmp_path): result = pdm(["-c", "global_config.toml", "config", "strategy.resolve_max_rounds"]) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_config.py:80: AssertionError ___________________ test_hide_password_in_output_repository ____________________ project = pdm = .caller at 0x7fc7dca22200> def test_hide_password_in_output_repository(project, pdm): assert project.global_config["repository.pypi.password"] is None project.global_config["repository.pypi.username"] = "testuser" project.global_config["repository.pypi.password"] = "secret" > result = pdm(["config", "repository.pypi"], obj=project, strict=True) tests/cli/test_config.py:135: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['config', 'repository.pypi'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_hide_password_in_output_pypi _______________________ project = pdm = .caller at 0x7fc7dca6ea20> def test_hide_password_in_output_pypi(project, pdm): with pytest.raises(KeyError): assert project.global_config["pypi.extra.password"] is None project.global_config["pypi.extra.username"] = "testuser" project.global_config["pypi.extra.password"] = "secret" project.global_config["pypi.extra.url"] = "https://test/simple" > result = pdm(["config", "pypi.extra"], obj=project, strict=True) tests/cli/test_config.py:147: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['config', 'pypi.extra'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_config_get_repository __________________________ project = pdm = .caller at 0x7fc7dd740680> def test_config_get_repository(project, pdm): config = project.global_config["repository.pypi"] assert config == project.global_config.get_repository_config("pypi", "repository") assert project.global_config["repository.pypi.url"] == "https://upload.pypi.org/legacy/" > result = pdm(["config", "repository.pypi"], obj=project, strict=True) tests/cli/test_config.py:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['config', 'repository.pypi'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_fix_individual_problem __________________________ project = pdm = .caller at 0x7fc7dca4cb80> def test_fix_individual_problem(project, pdm): project._saved_python = None old_config = project.root / ".pdm.toml" old_config.write_text(f'[python]\nuse_pyenv = false\npath = "{Path(sys.executable).as_posix()}"\n') > pdm(["fix", "project-config"], obj=project, strict=True) tests/cli/test_fix.py:14: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['fix', 'project-config'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________________ test_show_fix_command _____________________________ project = pdm = .caller at 0x7fc7dd732980> def test_show_fix_command(project, pdm): old_config = project.root / ".pdm.toml" old_config.write_text(f'[python]\nuse_pyenv = false\npath = "{Path(sys.executable).as_posix()}"\n') result = pdm(["info"], obj=project) > assert "Run pdm fix to fix all" in result.stderr E AssertionError: assert 'Run pdm fix to fix all' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_fix.py:22: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_show_fix_command_global_project _____________________ core = pdm = .caller at 0x7fc7dd9cbf60> project_no_init = def test_show_fix_command_global_project(core, pdm, project_no_init): project = core.create_project(None, True, project_no_init.global_config.config_file) old_config = project.root / ".pdm.toml" old_config.write_text(f'[python]\nuse_pyenv = false\npath = "{Path(sys.executable).as_posix()}"\n') result = pdm(["info"], obj=project) > assert "Run pdm fix -g to fix all" in result.stderr E AssertionError: assert 'Run pdm fix -g to fix all' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_fix.py:33: AssertionError ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________________ test_fix_project_config ____________________________ project = pdm = .caller at 0x7fc7dd9d8720> def test_fix_project_config(project, pdm): project._saved_python = None old_config = project.root / ".pdm.toml" old_config.write_text(f'[python]\nuse_pyenv = false\npath = "{Path(sys.executable).as_posix()}"\n') assert project.project_config["python.use_pyenv"] is False assert project._saved_python == Path(sys.executable).as_posix() > pdm(["fix"], obj=project, strict=True) tests/cli/test_fix.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['fix'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_pre_script_fail_fast ___________________________ project = pdm = .caller at 0x7fc7dcc1c4a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcc3f0b0> mocker = def test_pre_script_fail_fast(project, pdm, capfd, mocker): project.pyproject.settings["scripts"] = { "pre_install": "python -c \"print('PRE INSTALL CALLED'); exit(1)\"", "post_install": "python -c \"print('POST INSTALL CALLED')\"", } project.pyproject.write() synchronize = mocker.patch("pdm.installers.synchronizers.Synchronizer.synchronize") result = pdm(["install"], obj=project) assert result.exit_code == 1 out, _ = capfd.readouterr() > assert "PRE INSTALL CALLED" in out E AssertionError: assert 'PRE INSTALL CALLED' in 'Changes are written to pyproject.toml.\n' tests/cli/test_hooks.py:26: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_pre_and_post_scripts ___________________________ project = pdm = .caller at 0x7fc7dcbf23e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcc39490>, _echo = None def test_pre_and_post_scripts(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "pre_script": "python echo.py pre_script", "post_script": "python echo.py post_script", "pre_test": "python echo.py pre_test", "test": "python echo.py test", "post_test": "python echo.py post_test", "pre_run": "python echo.py pre_run", "post_run": "python echo.py post_run", } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_hooks.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_composite_runs_all_hooks _________________________ project = pdm = .caller at 0x7fc7dc6505e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc6138c0>, _echo = None def test_composite_runs_all_hooks(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "second": "python echo.py Second", "post_second": "python echo.py Post-Second", "pre_script": "python echo.py Pre-Script", "post_script": "python echo.py Post-Script", "pre_run": "python echo.py Pre-Run", "post_run": "python echo.py Post-Run", } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_hooks.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_skip_all_hooks_option[:all] _______________________ project = pdm = .caller at 0x7fc7dc5fe3e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc5e4ad0> option = ':all', _echo = None @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_hooks_option(project, pdm, capfd, option: str, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", "pre_script": "python echo.py Pre-Script", "post_script": "python echo.py Post-Script", "pre_run": "python echo.py Pre-Run", "post_run": "python echo.py Post-Run", } project.pyproject.write() capfd.readouterr() > pdm(["run", f"--skip={option}", "first"], strict=True, obj=project) tests/cli/test_hooks.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '--skip=:all', 'first'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_skip_all_hooks_option[:pre,:post] ____________________ project = pdm = .caller at 0x7fc7dc6147c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc5f34a0> option = ':pre,:post', _echo = None @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_hooks_option(project, pdm, capfd, option: str, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", "pre_script": "python echo.py Pre-Script", "post_script": "python echo.py Post-Script", "pre_run": "python echo.py Pre-Run", "post_run": "python echo.py Post-Run", } project.pyproject.write() capfd.readouterr() > pdm(["run", f"--skip={option}", "first"], strict=True, obj=project) tests/cli/test_hooks.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '--skip=:pre,:post', 'first'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_skip_option[--skip pre_test,post_first,second] ______________ project = pdm = .caller at 0x7fc7dc75e7a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc7b46e0> args = '--skip pre_test,post_first,second', _echo = None @pytest.mark.parametrize( "args", [ "--skip pre_test,post_first,second", "-k pre_test,post_first,second", "--skip pre_test --skip post_first --skip second", "-k pre_test -k post_first -k second", "--skip pre_test --skip post_first,second", "-k pre_test -k post_first,second", ], ) def test_skip_option(project, pdm, capfd, args, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", *shlex.split(args), "test"], strict=True, obj=project) tests/cli/test_hooks.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '--skip', 'pre_test,post_first,second', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_option[-k pre_test,post_first,second] ________________ project = pdm = .caller at 0x7fc7dc79ca40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc6eaf60> args = '-k pre_test,post_first,second', _echo = None @pytest.mark.parametrize( "args", [ "--skip pre_test,post_first,second", "-k pre_test,post_first,second", "--skip pre_test --skip post_first --skip second", "-k pre_test -k post_first -k second", "--skip pre_test --skip post_first,second", "-k pre_test -k post_first,second", ], ) def test_skip_option(project, pdm, capfd, args, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", *shlex.split(args), "test"], strict=True, obj=project) tests/cli/test_hooks.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-k', 'pre_test,post_first,second', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______ test_skip_option[--skip pre_test --skip post_first --skip second] _______ project = pdm = .caller at 0x7fc7dc7b2840> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc77fe90> args = '--skip pre_test --skip post_first --skip second', _echo = None @pytest.mark.parametrize( "args", [ "--skip pre_test,post_first,second", "-k pre_test,post_first,second", "--skip pre_test --skip post_first --skip second", "-k pre_test -k post_first -k second", "--skip pre_test --skip post_first,second", "-k pre_test -k post_first,second", ], ) def test_skip_option(project, pdm, capfd, args, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", *shlex.split(args), "test"], strict=True, obj=project) tests/cli/test_hooks.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '--skip', 'pre_test', '--skip', 'post_first', '--skip', ...] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________ test_skip_option[-k pre_test -k post_first -k second] _____________ project = pdm = .caller at 0x7fc7dcba4540> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dd9442c0> args = '-k pre_test -k post_first -k second', _echo = None @pytest.mark.parametrize( "args", [ "--skip pre_test,post_first,second", "-k pre_test,post_first,second", "--skip pre_test --skip post_first --skip second", "-k pre_test -k post_first -k second", "--skip pre_test --skip post_first,second", "-k pre_test -k post_first,second", ], ) def test_skip_option(project, pdm, capfd, args, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", *shlex.split(args), "test"], strict=True, obj=project) tests/cli/test_hooks.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-k', 'pre_test', '-k', 'post_first', '-k', ...] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________ test_skip_option[--skip pre_test --skip post_first,second] __________ project = pdm = .caller at 0x7fc7dc7b27a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dd76cf20> args = '--skip pre_test --skip post_first,second', _echo = None @pytest.mark.parametrize( "args", [ "--skip pre_test,post_first,second", "-k pre_test,post_first,second", "--skip pre_test --skip post_first --skip second", "-k pre_test -k post_first -k second", "--skip pre_test --skip post_first,second", "-k pre_test -k post_first,second", ], ) def test_skip_option(project, pdm, capfd, args, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", *shlex.split(args), "test"], strict=True, obj=project) tests/cli/test_hooks.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '--skip', 'pre_test', '--skip', 'post_first,second', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_option[-k pre_test -k post_first,second] ______________ project = pdm = .caller at 0x7fc7dc470860> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc6ea2d0> args = '-k pre_test -k post_first,second', _echo = None @pytest.mark.parametrize( "args", [ "--skip pre_test,post_first,second", "-k pre_test,post_first,second", "--skip pre_test --skip post_first --skip second", "-k pre_test -k post_first -k second", "--skip pre_test --skip post_first,second", "-k pre_test -k post_first,second", ], ) def test_skip_option(project, pdm, capfd, args, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "post_first": "python echo.py Post-First", "second": "python echo.py Second", "pre_second": "python echo.py Pre-Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", *shlex.split(args), "test"], strict=True, obj=project) tests/cli/test_hooks.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-k', 'pre_test', '-k', 'post_first,second', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_hooks[add] ________________________________ hooked_project = pdm = .caller at 0x7fc7dc4ab6a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc3bb320> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_hooks[build] _______________________________ hooked_project = pdm = .caller at 0x7fc7dc2fcc20> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc3b9c40> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_hooks[init] _______________________________ hooked_project = pdm = .caller at 0x7fc7dc3b5580> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc36d910> specs = HookSpecs(command='init --non-interactive', hooks=('post_init',), fixtures=[]) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init', '--non-interactive'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________________ test_hooks[install] ______________________________ hooked_project = pdm = .caller at 0x7fc7dc30f420> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcab49e0> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_hooks[lock] _______________________________ hooked_project = pdm = .caller at 0x7fc7dcac5300> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcb09ee0> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________________ test_hooks[publish] ______________________________ hooked_project = pdm = .caller at 0x7fc7dcaab240> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcaa4c80> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_hooks[remove] ______________________________ hooked_project = pdm = .caller at 0x7fc7dc21d440> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc299970> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _______________________________ test_hooks[sync] _______________________________ hooked_project = pdm = .caller at 0x7fc7dc289c60> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc235dc0> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ______________________________ test_hooks[update] ______________________________ hooked_project = pdm = .caller at 0x7fc7dc1d5260> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7f5dbe0> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_hooks[use] ________________________________ hooked_project = pdm = .caller at 0x7fc7d7fa34c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7f3c710> specs = HookSpecs(command='use -f 3.12', hooks=('post_use',), fixtures=[]) @parametrize_with_commands def test_hooks(hooked_project, pdm, capfd, specs: HookSpecs): > pdm(shlex.split(specs.command), strict=True, obj=hooked_project) tests/cli/test_hooks.py:258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['use', '-f', '3.12'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_skip_option_from_signal[add-pre_lock] __________________ hooked_project = pdm = .caller at 0x7fc7dc472200> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc330620> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) hook = 'pre_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--skip=pre_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_option_from_signal[add-post_lock] __________________ hooked_project = pdm = .caller at 0x7fc7d7fc8220> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc45e7b0> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) hook = 'post_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--skip=post_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_option_from_signal[build-pre_build] _________________ hooked_project = pdm = .caller at 0x7fc7d7f9dee0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc2d0980> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) hook = 'pre_build' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build', '--skip=pre_build'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_option_from_signal[build-post_build] ________________ hooked_project = pdm = .caller at 0x7fc7d7f9d940> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7f42c90> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) hook = 'post_build' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build', '--skip=post_build'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_option_from_signal[init-post_init] _________________ hooked_project = pdm = .caller at 0x7fc7dcca5ee0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcd5a210> specs = HookSpecs(command='init --non-interactive', hooks=('post_init',), fixtures=[]) hook = 'post_init' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init', '--non-interactive', '--skip=post_init'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_option_from_signal[install-pre_install] _______________ hooked_project = pdm = .caller at 0x7fc7dcd8c0e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcd3e360> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) hook = 'pre_install' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=pre_install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_option_from_signal[install-post_install] ______________ hooked_project = pdm = .caller at 0x7fc7dcd9df80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc50f800> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) hook = 'post_install' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=post_install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_option_from_signal[install-pre_lock] ________________ hooked_project = pdm = .caller at 0x7fc7dc5a7ce0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dcd08ec0> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) hook = 'pre_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=pre_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_option_from_signal[install-post_lock] ________________ hooked_project = pdm = .caller at 0x7fc7dc519f80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc59f650> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) hook = 'post_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=post_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_option_from_signal[lock-pre_lock] __________________ hooked_project = pdm = .caller at 0x7fc7dc4fbec0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d74c67b0> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) hook = 'pre_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--skip=pre_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_option_from_signal[lock-post_lock] _________________ hooked_project = pdm = .caller at 0x7fc7d746dd00> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d744bcb0> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) hook = 'post_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--skip=post_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_option_from_signal[publish-pre_publish] _______________ hooked_project = pdm = .caller at 0x7fc7d7473c40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d74211c0> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) hook = 'pre_publish' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=pre_publish'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_option_from_signal[publish-pre_build] ________________ hooked_project = pdm = .caller at 0x7fc7dc1a60c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc187590> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) hook = 'pre_build' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=pre_build'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_option_from_signal[publish-post_build] _______________ hooked_project = pdm = .caller at 0x7fc7dc0d3f60> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc1c6750> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) hook = 'post_build' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=post_build'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_option_from_signal[publish-post_publish] ______________ hooked_project = pdm = .caller at 0x7fc7dc195da0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc0dbc20> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) hook = 'post_publish' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=post_publish'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_option_from_signal[remove-pre_lock] _________________ hooked_project = pdm = .caller at 0x7fc7d73b4680> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc0da180> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) hook = 'pre_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests', '--skip=pre_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ________________ test_skip_option_from_signal[remove-post_lock] ________________ hooked_project = pdm = .caller at 0x7fc7d73c2840> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d73d62d0> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) hook = 'post_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests', '--skip=post_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ________________ test_skip_option_from_signal[sync-pre_install] ________________ hooked_project = pdm = .caller at 0x7fc7d73056c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7211be0> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) hook = 'pre_install' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync', '--skip=pre_install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _______________ test_skip_option_from_signal[sync-post_install] ________________ hooked_project = pdm = .caller at 0x7fc7d7235080> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d72cd2e0> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) hook = 'post_install' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync', '--skip=post_install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _______________ test_skip_option_from_signal[update-pre_install] _______________ hooked_project = pdm = .caller at 0x7fc7d7291b20> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d72ecb00> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) hook = 'pre_install' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=pre_install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_option_from_signal[update-post_install] _______________ hooked_project = pdm = .caller at 0x7fc7d7d7b880> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d72cfb00> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) hook = 'post_install' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=post_install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_option_from_signal[update-pre_lock] _________________ hooked_project = pdm = .caller at 0x7fc7d7d5db20> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7dec9e0> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) hook = 'pre_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=pre_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_option_from_signal[update-post_lock] ________________ hooked_project = pdm = .caller at 0x7fc7d7d54d60> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d74a7440> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) hook = 'post_lock' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=post_lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_skip_option_from_signal[use-post_use] __________________ hooked_project = pdm = .caller at 0x7fc7d7db6c00> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dccf4170> specs = HookSpecs(command='use -f 3.12', hooks=('post_use',), fixtures=[]) hook = 'post_use' @parametrize_with_hooks # Iterate over hooks as we need a clean slate for each run def test_skip_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, hook: str): > pdm([*shlex.split(specs.command), f"--skip={hook}"], strict=True, obj=hooked_project) tests/cli/test_hooks.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['use', '-f', '3.12', '--skip=post_use'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_skip_all_option_from_signal[:all-add] __________________ hooked_project = pdm = .caller at 0x7fc7d7d08a40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7ff1430> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_all_option_from_signal[:all-build] _________________ hooked_project = pdm = .caller at 0x7fc7d6fe6660> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7dc53f110> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_all_option_from_signal[:all-init] __________________ hooked_project = pdm = .caller at 0x7fc7d6ff0900> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6fbdc40> specs = HookSpecs(command='init --non-interactive', hooks=('post_init',), fixtures=[]) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init', '--non-interactive', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_all_option_from_signal[:all-install] ________________ hooked_project = pdm = .caller at 0x7fc7d6e2a7a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6eaa120> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_skip_all_option_from_signal[:all-lock] __________________ hooked_project = pdm = .caller at 0x7fc7d6e78a40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6e40e60> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_all_option_from_signal[:all-publish] ________________ hooked_project = pdm = .caller at 0x7fc7d6e4aac0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7e2a180> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_all_option_from_signal[:all-remove] _________________ hooked_project = pdm = .caller at 0x7fc7d7e9da80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7e2c980> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _________________ test_skip_all_option_from_signal[:all-sync] __________________ hooked_project = pdm = .caller at 0x7fc7d7eb91c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7e8b530> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ________________ test_skip_all_option_from_signal[:all-update] _________________ hooked_project = pdm = .caller at 0x7fc7d7eb94e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6df85c0> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_skip_all_option_from_signal[:all-use] __________________ hooked_project = pdm = .caller at 0x7fc7d6d314e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6d83110> specs = HookSpecs(command='use -f 3.12', hooks=('post_use',), fixtures=[]) option = ':all' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['use', '-f', '3.12', '--skip=:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_all_option_from_signal[:pre,:post-add] _______________ hooked_project = pdm = .caller at 0x7fc7d6d03380> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d717e210> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_all_option_from_signal[:pre,:post-build] ______________ hooked_project = pdm = .caller at 0x7fc7d71491c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d71ef650> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_all_option_from_signal[:pre,:post-init] _______________ hooked_project = pdm = .caller at 0x7fc7d718ee80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7100e00> specs = HookSpecs(command='init --non-interactive', hooks=('post_init',), fixtures=[]) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init', '--non-interactive', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_skip_all_option_from_signal[:pre,:post-install] _____________ hooked_project = pdm = .caller at 0x7fc7d6cf1080> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6ccf4a0> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_all_option_from_signal[:pre,:post-lock] _______________ hooked_project = pdm = .caller at 0x7fc7d6cf32e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6ea97c0> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_skip_all_option_from_signal[:pre,:post-publish] _____________ hooked_project = pdm = .caller at 0x7fc7d6c113a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6f19370> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_skip_all_option_from_signal[:pre,:post-remove] ______________ hooked_project = pdm = .caller at 0x7fc7d6c88cc0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7e8a6c0> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ______________ test_skip_all_option_from_signal[:pre,:post-sync] _______________ hooked_project = pdm = .caller at 0x7fc7d6b334c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6c7f8f0> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _____________ test_skip_all_option_from_signal[:pre,:post-update] ______________ hooked_project = pdm = .caller at 0x7fc7d6bf80e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d71cdc70> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_all_option_from_signal[:pre,:post-use] _______________ hooked_project = pdm = .caller at 0x7fc7d6b0de40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6b63bf0> specs = HookSpecs(command='use -f 3.12', hooks=('post_use',), fixtures=[]) option = ':pre,:post' @parametrize_with_commands @pytest.mark.parametrize("option", [":all", ":pre,:post"]) def test_skip_all_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, option: str): > pdm( [*shlex.split(specs.command), f"--skip={option}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:277: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['use', '-f', '3.12', '--skip=:pre,:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_pre_post_option_from_signal[pre-add] ________________ hooked_project = pdm = .caller at 0x7fc7d6b73560> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d70502f0> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[pre-build] _______________ hooked_project = pdm = .caller at 0x7fc7d70b9f80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d70d3320> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[pre-init] ________________ hooked_project = pdm = .caller at 0x7fc7d707be20> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d61f0770> specs = HookSpecs(command='init --non-interactive', hooks=('post_init',), fixtures=[]) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init', '--non-interactive', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_pre_post_option_from_signal[pre-install] ______________ hooked_project = pdm = .caller at 0x7fc7d6115bc0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d70098e0> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[pre-lock] ________________ hooked_project = pdm = .caller at 0x7fc7d61cfec0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d61185f0> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_pre_post_option_from_signal[pre-publish] ______________ hooked_project = pdm = .caller at 0x7fc7d61120c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6a9b5c0> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_pre_post_option_from_signal[pre-remove] _______________ hooked_project = pdm = .caller at 0x7fc7d6a58900> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6ad0cb0> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _______________ test_skip_pre_post_option_from_signal[pre-sync] ________________ hooked_project = pdm = .caller at 0x7fc7d6ad72e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6a55b80> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ______________ test_skip_pre_post_option_from_signal[pre-update] _______________ hooked_project = pdm = .caller at 0x7fc7d601f7e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d7062930> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_skip_pre_post_option_from_signal[pre-use] ________________ hooked_project = pdm = .caller at 0x7fc7d6075760> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6a57380> specs = HookSpecs(command='use -f 3.12', hooks=('post_use',), fixtures=[]) prefix = 'pre' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['use', '-f', '3.12', '--skip=:pre'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[post-add] ________________ hooked_project = pdm = .caller at 0x7fc7d606b4c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d6054800> specs = HookSpecs(command='add requests', hooks=('pre_lock', 'post_lock'), fixtures=['working_set']) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_pre_post_option_from_signal[post-build] _______________ hooked_project = pdm = .caller at 0x7fc7d606b2e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5fe7260> specs = HookSpecs(command='build', hooks=('pre_build', 'post_build'), fixtures=[]) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['build', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[post-init] _______________ hooked_project = pdm = .caller at 0x7fc7d5f7f600> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5fec6e0> specs = HookSpecs(command='init --non-interactive', hooks=('post_init',), fixtures=[]) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init', '--non-interactive', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_skip_pre_post_option_from_signal[post-install] ______________ hooked_project = pdm = .caller at 0x7fc7d5ff18a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5f3c680> specs = HookSpecs(command='install', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=['repository']) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[post-lock] _______________ hooked_project = pdm = .caller at 0x7fc7d5eab7e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5e2dbb0> specs = HookSpecs(command='lock', hooks=('pre_lock', 'post_lock'), fixtures=[]) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_skip_pre_post_option_from_signal[post-publish] ______________ hooked_project = pdm = .caller at 0x7fc7d5eb1800> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5fdb8c0> specs = HookSpecs(command='publish --username abc --password 123', hooks=('pre_publish', 'pre_build', 'post_build', 'post_publish'), fixtures=['mock_publish']) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username', 'abc', '--password', '123', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________ test_skip_pre_post_option_from_signal[post-remove] ______________ hooked_project = pdm = .caller at 0x7fc7d5ee7c40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5ed1550> specs = HookSpecs(command='remove requests', hooks=('pre_lock', 'post_lock'), fixtures=['lock']) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 _______________ test_skip_pre_post_option_from_signal[post-sync] _______________ hooked_project = pdm = .caller at 0x7fc7d5abb7e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5ac95e0> specs = HookSpecs(command='sync', hooks=('pre_install', 'post_install'), fixtures=['lock']) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['sync', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log setup ------------------------------ INFO pdm.termui:reporters.py:21 ======== Start resolving requirements ======== INFO pdm.termui:reporters.py:37 requests INFO pdm.termui:reporters.py:37 python>=3.7 INFO pdm.termui:reporters.py:72 Adding requirement requests INFO pdm.termui:reporters.py:72 Adding requirement python>=3.7 INFO pdm.termui:reporters.py:21 ======== Starting round 0 ======== INFO pdm.termui:reporters.py:92 Pinning: python None INFO pdm.termui:reporters.py:21 ======== Ending round 0 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 1 ======== INFO pdm.termui:reporters.py:72 Adding requirement certifi>=2017.4.17(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement chardet<3.1.0,>=3.0.2(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement idna<2.8,>=2.5(from requests 2.19.1) INFO pdm.termui:reporters.py:72 Adding requirement urllib3<1.24,>=1.21.1(from requests 2.19.1) INFO pdm.termui:reporters.py:92 Pinning: requests 2.19.1 INFO pdm.termui:reporters.py:21 ======== Ending round 1 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 2 ======== INFO pdm.termui:reporters.py:92 Pinning: chardet 3.0.4 INFO pdm.termui:reporters.py:21 ======== Ending round 2 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 3 ======== INFO pdm.termui:reporters.py:92 Pinning: idna 2.7 INFO pdm.termui:reporters.py:21 ======== Ending round 3 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 4 ======== INFO pdm.termui:reporters.py:92 Pinning: urllib3 1.22 INFO pdm.termui:reporters.py:21 ======== Ending round 4 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 5 ======== INFO pdm.termui:reporters.py:92 Pinning: certifi 2018.11.17 INFO pdm.termui:reporters.py:21 ======== Ending round 5 ======== INFO pdm.termui:reporters.py:21 ======== Starting round 6 ======== INFO pdm.termui:reporters.py:21 ======== Resolution Result ======== INFO pdm.termui:reporters.py:50 Stable pins: INFO pdm.termui:reporters.py:60 python None INFO pdm.termui:reporters.py:60 requests 2.19.1 INFO pdm.termui:reporters.py:60 chardet 3.0.4 INFO pdm.termui:reporters.py:60 idna 2.7 INFO pdm.termui:reporters.py:60 urllib3 1.22 INFO pdm.termui:reporters.py:60 certifi 2018.11.17 ______________ test_skip_pre_post_option_from_signal[post-update] ______________ hooked_project = pdm = .caller at 0x7fc7d5adb7e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5a30a10> specs = HookSpecs(command='update', hooks=('pre_install', 'post_install', 'pre_lock', 'post_lock'), fixtures=[]) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['update', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_skip_pre_post_option_from_signal[post-use] ________________ hooked_project = pdm = .caller at 0x7fc7d5d55b20> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7d5dd3590> specs = HookSpecs(command='use -f 3.12', hooks=('post_use',), fixtures=[]) prefix = 'post' @parametrize_with_commands @pytest.mark.parametrize("prefix", ["pre", "post"]) def test_skip_pre_post_option_from_signal(hooked_project, pdm, capfd, specs: HookSpecs, prefix: str): > pdm( [*shlex.split(specs.command), f"--skip=:{prefix}"], strict=True, obj=hooked_project, ) tests/cli/test_hooks.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['use', '-f', '3.12', '--skip=:post'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_init_validate_python_requires ______________________ project_no_init = pdm = .caller at 0x7fc7d5d3f1a0> def test_init_validate_python_requires(project_no_init, pdm): result = pdm(["init"], input="\n\n\n\n\n\n\n3.7\n", obj=project_no_init) assert result.exit_code != 0 > assert "InvalidSpecifier" in result.stderr E AssertionError: assert 'InvalidSpecifier' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_init.py:13: AssertionError ______________________________ test_init_command _______________________________ project_no_init = pdm = .caller at 0x7fc7d5d1d260> mocker = def test_init_command(project_no_init, pdm, mocker): mocker.patch( "pdm.cli.commands.init.get_user_email_from_git", return_value=("Testing", "me@example.org"), ) > pdm(["init"], input="\ntest-project\n\n\n\n\n\n\n", strict=True, obj=project_no_init) tests/cli/test_init.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['init'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError __________________________ test_init_command_library ___________________________ project_no_init = pdm = .caller at 0x7fc7d5a48220> mocker = def test_init_command_library(project_no_init, pdm, mocker): mocker.patch( "pdm.cli.commands.init.get_user_email_from_git", return_value=("Testing", "me@example.org"), ) result = pdm( ["init"], input="\ntest-project\n\ny\nTest Project\n1\n\n\n\n\n", obj=project_no_init, ) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_init.py:51: AssertionError __________________________ test_init_non_interactive ___________________________ project_no_init = pdm = .caller at 0x7fc7d58b74c0> mocker = def test_init_non_interactive(project_no_init, pdm, mocker): mocker.patch( "pdm.cli.commands.init.get_user_email_from_git", return_value=("Testing", "me@example.org"), ) do_use = mocker.patch("pdm.cli.commands.use.Command.do_use", return_value=PythonInfo.from_path(sys.executable)) result = pdm(["init", "-n"], obj=project_no_init) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_init.py:79: AssertionError __________________________ test_init_auto_create_venv __________________________ project_no_init = pdm = .caller at 0x7fc7d5864b80> mocker = def test_init_auto_create_venv(project_no_init, pdm, mocker): mocker.patch("pdm.models.python.PythonInfo.get_venv", return_value=None) project_no_init.project_config["python.use_venv"] = True result = pdm(["init"], input="\n\n\n\n\n\n\n\n\n", obj=project_no_init) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_init.py:112: AssertionError __________________ test_init_auto_create_venv_specify_python ___________________ project_no_init = pdm = .caller at 0x7fc7d58fa700> mocker = def test_init_auto_create_venv_specify_python(project_no_init, pdm, mocker): mocker.patch("pdm.models.python.PythonInfo.get_venv", return_value=None) project_no_init.project_config["python.use_venv"] = True result = pdm( ["init", f"--python={PYTHON_VERSION}"], input="\n\n\n\n\n\n\n\n", obj=project_no_init, ) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_init.py:125: AssertionError _____________________ test_init_auto_create_venv_answer_no _____________________ project_no_init = pdm = .caller at 0x7fc7d5803d80> mocker = def test_init_auto_create_venv_answer_no(project_no_init, pdm, mocker): mocker.patch("pdm.models.python.PythonInfo.get_venv", return_value=None) creator = mocker.patch("pdm.cli.commands.venv.backends.Backend.create") project_no_init.project_config["python.use_venv"] = True result = pdm(["init"], input="\nn\n\n\n\n\n\n\n\n\n", obj=project_no_init) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_init.py:134: AssertionError ____________________ test_init_with_backend_default_library ____________________ project_no_init = pdm = .caller at 0x7fc7d59e5bc0> def test_init_with_backend_default_library(project_no_init, pdm): pdm(["init", "--backend", "flit-core"], input="\n\n\n\n\n\n\n\n\n", obj=project_no_init) > assert project_no_init.backend.__class__.__name__ == "FlitBackend" E AssertionError: assert 'PDMBackend' == 'FlitBackend' E E - FlitBackend E + PDMBackend tests/cli/test_init.py:141: AssertionError ____________ test_init_with_backend_default_library_non_interactive ____________ project_no_init = pdm = .caller at 0x7fc7d5907740> def test_init_with_backend_default_library_non_interactive(project_no_init, pdm): pdm(["init", "-n", "--backend", "flit-core"], obj=project_no_init) > assert project_no_init.backend.__class__.__name__ == "FlitBackend" E AssertionError: assert 'PDMBackend' == 'FlitBackend' E E - FlitBackend E + PDMBackend tests/cli/test_init.py:146: AssertionError ______________________ test_sync_packages_with_group_all _______________________ project = working_set = pdm = .caller at 0x7fc7d5961940> def test_sync_packages_with_group_all(project, working_set, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, "date") project.add_dependencies({"pyopenssl": parse_requirement("pyopenssl")}, "ssl") > pdm(["install", "-G:all"], obj=project, strict=True) tests/cli/test_install.py:13: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '-G:all'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_sync_packages_with_all_dev ________________________ project = working_set = pdm = .caller at 0x7fc7d596ff60> def test_sync_packages_with_all_dev(project, working_set, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, "date", True) project.add_dependencies({"pyopenssl": parse_requirement("pyopenssl")}, "ssl", True) > pdm(["install", "-d", "--no-default"], obj=project, strict=True) tests/cli/test_install.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '-d', '--no-default'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________________ test_sync_clean_packages ___________________________ project = working_set = pdm = .caller at 0x7fc7d5c289a0> def test_sync_clean_packages(project, working_set, pdm): for candidate in [ Distribution("foo", "0.1.0"), Distribution("chardet", "3.0.1"), Distribution("idna", "2.7"), ]: working_set.add_distribution(candidate) > pdm(["add", "--no-sync", "requests"], obj=project, strict=True) tests/cli/test_install.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-sync', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_sync_dry_run _______________________________ project = working_set = pdm = .caller at 0x7fc7d5c98220> def test_sync_dry_run(project, working_set, pdm): for candidate in [ Distribution("foo", "0.1.0"), Distribution("chardet", "3.0.1"), Distribution("idna", "2.7"), ]: working_set.add_distribution(candidate) > pdm(["add", "--no-sync", "requests"], obj=project, strict=True) tests/cli/test_install.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-sync', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________________ test_sync_only_different ___________________________ project = working_set = pdm = .caller at 0x7fc7d57ee0c0> def test_sync_only_different(project, working_set, pdm): working_set.add_distribution(Distribution("foo", "0.1.0")) working_set.add_distribution(Distribution("chardet", "3.0.1")) working_set.add_distribution(Distribution("idna", "2.7")) > result = pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_install.py:67: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________________ test_sync_in_sequential_mode _________________________ project = working_set = pdm = .caller at 0x7fc7d5723e20> def test_sync_in_sequential_mode(project, working_set, pdm): project.project_config["install.parallel"] = False > result = pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_install.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_sync_packages_with_groups ________________________ project = working_set = pdm = .caller at 0x7fc7d57e9260> def test_sync_packages_with_groups(project, working_set, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, "date") > pdm(["install", "-Gdate"], obj=project, strict=True) tests/cli/test_install.py:87: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '-Gdate'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_sync_production_packages[prod_option0] __________________ project = working_set = prod_option = ('--prod',) pdm = .caller at 0x7fc7d5b8fec0> @pytest.mark.parametrize("prod_option", [("--prod",), ()]) def test_sync_production_packages(project, working_set, prod_option, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, "dev", dev=True) > pdm(["install", *prod_option], obj=project, strict=True) tests/cli/test_install.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--prod'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_sync_production_packages[prod_option1] __________________ project = working_set = prod_option = (), pdm = .caller at 0x7fc7d5bc5f80> @pytest.mark.parametrize("prod_option", [("--prod",), ()]) def test_sync_production_packages(project, working_set, prod_option, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, "dev", dev=True) > pdm(["install", *prod_option], obj=project, strict=True) tests/cli/test_install.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________________ test_sync_without_self ____________________________ project = working_set = pdm = .caller at 0x7fc7d5b6ff60> def test_sync_without_self(project, working_set, pdm): project.add_dependencies({"requests": parse_requirement("requests")}) > pdm(["install", "--no-self"], obj=project, strict=True) tests/cli/test_install.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _________________________ test_sync_with_index_change __________________________ project = index = {'/simple/future-fstrings/': b'\n \n \n

future-fstrings

\n \n future_fstrings-1.2.0.tar.gz\n \n \n \n '} pdm = .caller at 0x7fc7d5b6fd80> def test_sync_with_index_change(project, index, pdm): project.project_config["pypi.url"] = "https://my.pypi.org/simple" project.pyproject.metadata["requires-python"] = ">=3.6" project.pyproject.metadata["dependencies"] = ["future-fstrings"] project.pyproject.write() index["/simple/future-fstrings/"] = b"""

future-fstrings

future_fstrings-1.2.0.tar.gz """ > pdm(["lock"], obj=project, strict=True) tests/cli/test_install.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _____________________________ test_install_command _____________________________ project = pdm = .caller at 0x7fc7d558f600> mocker = def test_install_command(project, pdm, mocker): do_lock = mocker.patch.object(actions, "do_lock") do_sync = mocker.patch.object(actions, "do_sync") pdm(["install"], obj=project) > do_lock.assert_called_once() tests/cli/test_install.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'do_lock' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________________ test_sync_command _______________________________ project = pdm = .caller at 0x7fc7d55d93a0> mocker = def test_sync_command(project, pdm, mocker): pdm(["lock"], obj=project) do_sync = mocker.patch.object(actions, "do_sync") pdm(["sync"], obj=project) > do_sync.assert_called_once() tests/cli/test_install.py:146: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'do_sync' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_install_with_lockfile __________________________ project = pdm = .caller at 0x7fc7d55a3600> @pytest.mark.usefixtures("working_set") def test_install_with_lockfile(project, pdm): result = pdm(["lock", "-v"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_install.py:152: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_install_with_dry_run ___________________________ project = pdm = .caller at 0x7fc7d5414c20> repository = def test_install_with_dry_run(project, pdm, repository): project.add_dependencies({"pytz": parse_requirement("pytz")}, "default") result = pdm(["install", "--dry-run"], obj=project) project.lockfile.reload() assert "pytz" not in project.locked_repository.all_candidates > assert "pytz 2019.3" in result.output E AssertionError: assert 'pytz 2019.3' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output tests/cli/test_install.py:168: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _____________________________ test_install_no_lock _____________________________ project = pdm = .caller at 0x7fc7d5402c00> working_set = def test_install_no_lock(project, pdm, working_set): project.add_dependencies({"requests": parse_requirement("requests")}, "default") result = pdm(["install", "--no-lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_install.py:174: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _______________________ test_sync_with_only_keep_option ________________________ project = working_set = pdm = .caller at 0x7fc7d564e660> def test_sync_with_only_keep_option(project, working_set, pdm): project.add_dependencies({"requests": parse_requirement("requests>=2.0")}) project.add_dependencies({"django": parse_requirement("django")}, "web", True) > pdm(["install"], obj=project, strict=True) tests/cli/test_install.py:193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_install_referencing_self_package _____________________ project = working_set = pdm = .caller at 0x7fc7d56f0040> def test_install_referencing_self_package(project, working_set, pdm): project.add_dependencies({"pytz": parse_requirement("pytz")}, to_group="tz") project.add_dependencies({"urllib3": parse_requirement("urllib3")}, to_group="web") project.add_dependencies({"test-project": parse_requirement("test-project[tz,web]")}, to_group="all") > pdm(["install", "-Gall"], obj=project, strict=True) tests/cli/test_install.py:205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '-Gall'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_install_monorepo_with_rel_paths _____________________ fixture_project = .func at 0x7fc7d5671ee0> pdm = .caller at 0x7fc7d5671da0> working_set = def test_install_monorepo_with_rel_paths(fixture_project, pdm, working_set): project = fixture_project("test-monorepo") with cd(project.root): > pdm(["install"], obj=project, strict=True) tests/cli/test_install.py:213: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_install_retry ______________________________ project = pdm = .caller at 0x7fc7d56dfd80> mocker = @pytest.mark.usefixtures("repository") def test_install_retry(project, pdm, mocker): pdm(["add", "certifi", "chardet", "--no-sync"], obj=project) handler = mocker.patch( "pdm.installers.synchronizers.Synchronizer.install_candidate", side_effect=RuntimeError, ) result = pdm(["install"], obj=project) assert result.exit_code == 1 > handler.assert_has_calls( [ mocker.call("certifi", mocker.ANY), mocker.call("chardet", mocker.ANY), mocker.call("certifi", mocker.ANY), mocker.call("chardet", mocker.ANY), ], any_order=True, ) tests/cli/test_install.py:227: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = calls = [call('certifi', ), call('chardet', ), call('certifi', ), call('chardet', )] any_order = True def assert_has_calls(self, calls, any_order=False): """assert the mock has been called with the specified calls. The `mock_calls` list is checked for the calls. If `any_order` is False (the default) then the calls must be sequential. There can be extra calls before or after the specified calls. If `any_order` is True then the calls can be in any order, but they must all appear in `mock_calls`.""" expected = [self._call_matcher(c) for c in calls] cause = next((e for e in expected if isinstance(e, Exception)), None) all_calls = _CallList(self._call_matcher(c) for c in self.mock_calls) if not any_order: if expected not in all_calls: if cause is None: problem = 'Calls not found.' else: problem = ('Error processing expected calls.\n' 'Errors: {}').format( [e if isinstance(e, Exception) else None for e in expected]) raise AssertionError( f'{problem}\n' f'Expected: {_CallList(calls)}' f'{self._calls_repr(prefix=" Actual").rstrip(".")}' ) from cause return all_calls = list(all_calls) not_found = [] for kall in expected: try: all_calls.remove(kall) except ValueError: not_found.append(kall) if not_found: > raise AssertionError( '%r does not contain all of %r in its call list, ' 'found %r instead' % (self._mock_name or 'mock', tuple(not_found), all_calls) ) from cause E AssertionError: 'install_candidate' does not contain all of (call('certifi', ), call('chardet', ), call('certifi', ), call('chardet', )) in its call list, found [] instead /usr/lib64/python3.12/unittest/mock.py:1002: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________________ test_install_fail_fast ____________________________ project = pdm = .caller at 0x7fc7d52d59e0> mocker = @pytest.mark.usefixtures("repository") def test_install_fail_fast(project, pdm, mocker): project.project_config["install.parallel"] = True pdm(["add", "certifi", "chardet", "pytz", "--no-sync"], obj=project) handler = mocker.patch( "pdm.installers.synchronizers.Synchronizer.install_candidate", side_effect=RuntimeError, ) mocker.patch("multiprocessing.cpu_count", return_value=1) result = pdm(["install", "--fail-fast"], obj=project) assert result.exit_code == 1 > handler.assert_has_calls( [ mocker.call("certifi", mocker.ANY), mocker.call("chardet", mocker.ANY), ], any_order=True, ) tests/cli/test_install.py:250: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = calls = [call('certifi', ), call('chardet', )], any_order = True def assert_has_calls(self, calls, any_order=False): """assert the mock has been called with the specified calls. The `mock_calls` list is checked for the calls. If `any_order` is False (the default) then the calls must be sequential. There can be extra calls before or after the specified calls. If `any_order` is True then the calls can be in any order, but they must all appear in `mock_calls`.""" expected = [self._call_matcher(c) for c in calls] cause = next((e for e in expected if isinstance(e, Exception)), None) all_calls = _CallList(self._call_matcher(c) for c in self.mock_calls) if not any_order: if expected not in all_calls: if cause is None: problem = 'Calls not found.' else: problem = ('Error processing expected calls.\n' 'Errors: {}').format( [e if isinstance(e, Exception) else None for e in expected]) raise AssertionError( f'{problem}\n' f'Expected: {_CallList(calls)}' f'{self._calls_repr(prefix=" Actual").rstrip(".")}' ) from cause return all_calls = list(all_calls) not_found = [] for kall in expected: try: all_calls.remove(kall) except ValueError: not_found.append(kall) if not_found: > raise AssertionError( '%r does not contain all of %r in its call list, ' 'found %r instead' % (self._mock_name or 'mock', tuple(not_found), all_calls) ) from cause E AssertionError: 'install_candidate' does not contain all of (call('certifi', ), call('chardet', )) in its call list, found [] instead /usr/lib64/python3.12/unittest/mock.py:1002: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_install_groups_not_in_lockfile ______________________ project = pdm = .caller at 0x7fc7d527fe20> @pytest.mark.usefixtures("working_set") def test_install_groups_not_in_lockfile(project, pdm): project.add_dependencies({"pytz": parse_requirement("pytz")}, to_group="tz") project.add_dependencies({"urllib3": parse_requirement("urllib3")}, to_group="web") > pdm(["install", "-vv"], obj=project, strict=True) tests/cli/test_install.py:263: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '-vv'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_install_locked_groups __________________________ project = pdm = .caller at 0x7fc7d55a2c00> working_set = def test_install_locked_groups(project, pdm, working_set): project.add_dependencies({"urllib3": parse_requirement("urllib3")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, to_group="tz") > pdm(["lock", "-Gtz", "--no-default"], obj=project, strict=True) tests/cli/test_install.py:275: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-Gtz', '--no-default'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________________ test_install_groups_and_lock _________________________ project = pdm = .caller at 0x7fc7d51dc400> working_set = def test_install_groups_and_lock(project, pdm, working_set): project.add_dependencies({"urllib3": parse_requirement("urllib3")}) project.add_dependencies({"pytz": parse_requirement("pytz")}, to_group="tz") > pdm(["install", "-Gtz", "--no-default"], obj=project, strict=True) tests/cli/test_install.py:284: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '-Gtz', '--no-default'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_install_requirement_with_extras _____________________ project = pdm = .caller at 0x7fc7d51c63e0> working_set = def test_install_requirement_with_extras(project, pdm, working_set): project.add_dependencies({"requests": parse_requirement("requests==2.19.1")}) project.add_dependencies({"requests[socks]": parse_requirement("requests[socks]")}, to_group="socks") > pdm(["lock", "-Gsocks"], obj=project, strict=True) tests/cli/test_install.py:295: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-Gsocks'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_list_command _______________________________ project = pdm = .caller at 0x7fc7d516c4a0> mocker = def test_list_command(project, pdm, mocker): # Calls the correct handler within the Command m = mocker.patch.object(Command, "handle_list") pdm(["list"], obj=project) > m.assert_called_once() tests/cli/test_list.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'handle_list' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_list_graph_command ____________________________ project = pdm = .caller at 0x7fc7d512e840> mocker = @pytest.mark.usefixtures("working_set") def test_list_graph_command(project, pdm, mocker): # Calls the correct handler within the list command m = mocker.patch.object(Command, "handle_graph") pdm(["list", "--tree"], obj=project) > m.assert_called_once() tests/cli/test_list.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'handle_graph' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_list_dependency_graph __________________________ project = pdm = .caller at 0x7fc7d5364900> @mock.patch("rich.console.ConsoleOptions.ascii_only", lambda: True) @pytest.mark.usefixtures("working_set") def test_list_dependency_graph(project, pdm): # Shows a line that contains a sub requirement (any order). > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_list_dependency_graph_include_exclude __________________ project = pdm = .caller at 0x7fc7d53ca700> @mock.patch("rich.console.ConsoleOptions.ascii_only", lambda: True) @pytest.mark.usefixtures("working_set") def test_list_dependency_graph_include_exclude(project, pdm): # Just include dev packages in the graph project.environment.python_requires = PySpecSet(">=3.6") dep_path = FIXTURES.joinpath("projects/demo").as_posix() > pdm(["add", "-de", f"{dep_path}[security]"], obj=project, strict=True) tests/cli/test_list.py:46: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '-de', '/usr/src/RPM/BUILD/pdm-2.11.2/tests/fixtures/projects/demo[security]'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_list_dependency_graph_with_circular_forward _______________ project = pdm = .caller at 0x7fc7d5334900> repository = @pytest.mark.usefixtures("working_set") def test_list_dependency_graph_with_circular_forward(project, pdm, repository): # shows a circular dependency repository.add_candidate("foo", "0.1.0") repository.add_candidate("foo-bar", "0.1.0") repository.add_dependencies("foo", "0.1.0", ["foo-bar"]) repository.add_dependencies("foo-bar", "0.1.0", ["foo"]) > pdm(["add", "foo"], obj=project, strict=True) tests/cli/test_list.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'foo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_list_dependency_graph_with_circular_reverse _______________ project = pdm = .caller at 0x7fc7d50d65c0> repository = @mock.patch("rich.console.ConsoleOptions.ascii_only", lambda: True) @pytest.mark.usefixtures("working_set") def test_list_dependency_graph_with_circular_reverse(project, pdm, repository): repository.add_candidate("foo", "0.1.0") repository.add_candidate("foo-bar", "0.1.0") repository.add_candidate("baz", "0.1.0") repository.add_dependencies("foo", "0.1.0", ["foo-bar"]) repository.add_dependencies("foo-bar", "0.1.0", ["foo", "baz"]) repository.add_dependencies("baz", "0.1.0", []) > pdm(["add", "foo"], obj=project, strict=True) tests/cli/test_list.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'foo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_list_reverse_without_graph_flag _____________________ project = pdm = .caller at 0x7fc7d500bce0> def test_list_reverse_without_graph_flag(project, pdm): # results in PDMUsageError since --reverse needs --tree result = pdm(["list", "--reverse"], obj=project) > assert "[PdmUsageError]" in result.stderr E AssertionError: assert '[PdmUsageError]' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_list.py:118: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_list_reverse_dependency_graph ______________________ project = pdm = .caller at 0x7fc7d509e480> @mock.patch("rich.console.ConsoleOptions.ascii_only", lambda: True) @pytest.mark.usefixtures("working_set") def test_list_reverse_dependency_graph(project, pdm): # requests visible on leaf node > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________________ test_list_json ________________________________ project = pdm = .caller at 0x7fc7d4fb04a0> @pytest.mark.usefixtures("working_set") def test_list_json(project, pdm): # check json output matches graph output > pdm(["add", "requests", "--no-self"], obj=project, strict=True) tests/cli/test_list.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________________ test_list_json_with_pattern __________________________ project = pdm = .caller at 0x7fc7d4f2a2a0> @pytest.mark.usefixtures("working_set") def test_list_json_with_pattern(project, pdm): > pdm(["add", "requests", "--no-self"], obj=project, strict=True) tests/cli/test_list.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________________ test_list_json_reverse ____________________________ project = pdm = .caller at 0x7fc7d4f8bf60> @pytest.mark.usefixtures("working_set") def test_list_json_reverse(project, pdm): # check json output matches reversed graph > pdm(["add", "requests", "--no-self"], obj=project, strict=True) tests/cli/test_list.py:196: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_list_reverse_json_with_pattern ______________________ project = pdm = .caller at 0x7fc7d4c0e160> @pytest.mark.usefixtures("working_set") def test_list_reverse_json_with_pattern(project, pdm): # check json output matches reversed graph > pdm(["add", "requests", "--no-self"], obj=project, strict=True) tests/cli/test_list.py:259: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_list_json_with_circular_forward _____________________ project = pdm = .caller at 0x7fc7d4cc1a80> repository = @pytest.mark.usefixtures("working_set") def test_list_json_with_circular_forward(project, pdm, repository): # circulars are handled in json exports repository.add_candidate("foo", "0.1.0") repository.add_candidate("foo-bar", "0.1.0") repository.add_candidate("baz", "0.1.0") repository.add_dependencies("baz", "0.1.0", ["foo"]) repository.add_dependencies("foo", "0.1.0", ["foo-bar"]) repository.add_dependencies("foo-bar", "0.1.0", ["foo"]) > pdm(["add", "baz", "--no-self"], obj=project, strict=True) tests/cli/test_list.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'baz', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_list_json_with_circular_reverse _____________________ project = pdm = .caller at 0x7fc7d4c3b880> repository = @pytest.mark.usefixtures("working_set") def test_list_json_with_circular_reverse(project, pdm, repository): # circulars are handled in reversed json exports repository.add_candidate("foo", "0.1.0") repository.add_candidate("foo-bar", "0.1.0") repository.add_candidate("baz", "0.1.0") repository.add_dependencies("foo", "0.1.0", ["foo-bar"]) repository.add_dependencies("foo-bar", "0.1.0", ["foo", "baz"]) repository.add_dependencies("baz", "0.1.0", []) > pdm(["add", "foo", "--no-self"], obj=project, strict=True) tests/cli/test_list.py:332: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'foo', '--no-self'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________________ test_list_field_unknown ____________________________ project = pdm = .caller at 0x7fc7d4ccd4e0> def test_list_field_unknown(project, pdm): # unknown list fields flagged to user result = pdm(["list", "--fields", "notvalid"], obj=project) > assert "[PdmUsageError]" in result.stderr E AssertionError: assert '[PdmUsageError]' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_list.py:369: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________________ test_list_sort_unknown ____________________________ project = pdm = .caller at 0x7fc7d4c6eca0> def test_list_sort_unknown(project, pdm): # unknown sort fields flagged to user result = pdm(["list", "--sort", "notvalid"], obj=project) > assert "[PdmUsageError]" in result.stderr E AssertionError: assert '[PdmUsageError]' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_list.py:376: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_list_freeze_banned_options ________________________ project = pdm = .caller at 0x7fc7d4ed89a0> def test_list_freeze_banned_options(project, pdm): # other flags cannot be used with --freeze result = pdm(["list", "--freeze", "--tree"], obj=project) expected = "--tree cannot be used with --freeze" > assert expected in result.outputs E AssertionError: assert '--tree cannot be used with --freeze' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).outputs tests/cli/test_list.py:384: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_list_multiple_export_formats _______________________ project = pdm = .caller at 0x7fc7d4ee6520> def test_list_multiple_export_formats(project, pdm): # export formats cannot be used with each other result = pdm(["list", "--csv", "--markdown"], obj=project) expected = "--markdown: not allowed with argument --csv" > assert expected in result.outputs E AssertionError: assert '--markdown: not allowed with argument --csv' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).outputs tests/cli/test_list.py:431: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________________ test_list_bare ________________________________ project = pdm = .caller at 0x7fc7d4b18720> @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("working_set") def test_list_bare(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:457: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_list_bare_sorted_name __________________________ project = pdm = .caller at 0x7fc7d4b36700> @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("working_set") def test_list_bare_sorted_name(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________________ test_list_with_pattern ____________________________ project = pdm = .caller at 0x7fc7d4b7c540> @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("working_set") def test_list_with_pattern(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:493: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_list_freeze _______________________________ project = pdm = .caller at 0x7fc7d49d2700> @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("working_set") def test_list_freeze(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:579: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_list_bare_sorted_version _________________________ project = pdm = .caller at 0x7fc7d4954400> @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("working_set") def test_list_bare_sorted_version(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_list.py:595: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_list_bare_sorted_version_resolve _____________________ project = pdm = .caller at 0x7fc7d493e2a0> working_set = @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("fake_metadata") def test_list_bare_sorted_version_resolve(project, pdm, working_set): project.environment.python_requires = PySpecSet(">=3.6") > pdm(["add", "requests", "--no-sync"], obj=project, strict=True) tests/cli/test_list.py:616: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', '--no-sync'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_list_bare_fields_licences ________________________ project = pdm = .caller at 0x7fc7d487c720> @mock.patch("pdm.termui.ROUNDED", ASCII) @pytest.mark.usefixtures("fake_working_set") def test_list_bare_fields_licences(project, pdm): result = pdm(["list", "--fields", "name,version,groups,licenses"], obj=project) expected = ( "+---------------------------------------------------------+\n" "| name | version | groups | licenses |\n" "|------------+---------+--------+-------------------------|\n" "| bar | 3.0.1 | :sub | B License |\n" "| baz | 2.7 | :sub | C License |\n" "| classifier | 1.0 | :sub | PDM TEST D |\n" "| foo | 0.1.0 | :sub | A License |\n" "| unknown | 1.0 | :sub | Apache Software License |\n" "+---------------------------------------------------------+\n" ) > assert expected == result.output E AssertionError: assert '+-----------...----------+\n' == '' E E + +---------------------------------------------------------+ E + | name | version | groups | licenses | E + |------------+---------+--------+-------------------------| E + | bar | 3.0.1 | :sub | B License | E + | baz | 2.7 | :sub | C License | E + | classifier | 1.0 | :sub | PDM TEST D | E + | foo | 0.1.0 | :sub | A License | E + | unknown | 1.0 | :sub | Apache Software License | E + +---------------------------------------------------------+ tests/cli/test_list.py:649: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_list_csv_fields_licences _________________________ project = pdm = .caller at 0x7fc7d481a980> @pytest.mark.usefixtures("fake_working_set") def test_list_csv_fields_licences(project, pdm): result = pdm(["list", "--csv", "--fields", "name,version,licenses"], obj=project) expected = ( "name,version,licenses\n" "bar,3.0.1,B License\n" "baz,2.7,C License\n" "classifier,1.0,PDM TEST D\n" "foo,0.1.0,A License\n" "unknown,1.0,Apache Software License\n" ) > assert expected == result.output E AssertionError: assert 'name,version...are License\n' == '' E E + name,version,licenses E + bar,3.0.1,B License E + baz,2.7,C License E + classifier,1.0,PDM TEST D E + foo,0.1.0,A License E + unknown,1.0,Apache Software License tests/cli/test_list.py:663: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_list_json_fields_licences ________________________ project = pdm = .caller at 0x7fc7d4880400> @pytest.mark.usefixtures("fake_working_set") def test_list_json_fields_licences(project, pdm): result = pdm(["list", "--json", "--fields", "name,version,licenses"], obj=project) expected = [ {"name": "bar", "version": "3.0.1", "licenses": "B License"}, {"name": "baz", "version": "2.7", "licenses": "C License"}, {"name": "classifier", "version": "1.0", "licenses": "PDM TEST D"}, {"name": "foo", "version": "0.1.0", "licenses": "A License"}, {"name": "unknown", "version": "1.0", "licenses": "Apache Software License"}, ] > assert expected == json.loads(result.outputs) tests/cli/test_list.py:677: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/json/__init__.py:346: in loads return _default_decoder.decode(s) /usr/lib64/python3.12/json/decoder.py:338: in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , s = '', idx = 0 def raw_decode(self, s, idx=0): """Decode a JSON document from ``s`` (a ``str`` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in ``s`` where the document ended. This can be used to decode a JSON document from a string that may have extraneous data at the end. """ try: obj, end = self.scan_once(s, idx) except StopIteration as err: > raise JSONDecodeError("Expecting value", s, err.value) from None E json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) /usr/lib64/python3.12/json/decoder.py:356: JSONDecodeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_list_markdown_fields_licences ______________________ project = pdm = .caller at 0x7fc7d4d465c0> @pytest.mark.usefixtures("fake_working_set") def test_list_markdown_fields_licences(project, pdm): result = pdm(["list", "--markdown", "--fields", "name,version,licenses"], obj=project) expected = ( "# test-project licenses\n" "## bar\n\n" "| Name | bar |\n" "|----|----|\n" "| Version | 3.0.1 |\n" "| Licenses | B License |\n\n" "bar-3.0.1.dist-info/LICENSE\n\n\n" "````\n" "license text for bar here\n" "````\n\n\n" "## baz\n\n" "| Name | baz |\n" "|----|----|\n" "| Version | 2.7 |\n" "| Licenses | C License |\n\n" "bar-2.7.dist-info/LICENSE\n\n\n" "````\n" "license text for baz here\n" "````\n\n\n" "## classifier\n\n" "| Name | classifier |\n" "|----|----|\n" "| Version | 1.0 |\n" "| Licenses | PDM TEST D |\n\n" "classifier-1.0.dist-info/LICENCE\n\n\n" "````\n" "Problem finding license text: division by zero\n" "````\n\n\n" "## foo\n\n" "| Name | foo |\n" "|----|----|\n" "| Version | 0.1.0 |\n" "| Licenses | A License |\n\n" "foo-0.1.0.dist-info/LICENSE\n\n\n" "````\n" "license text for foo here\n" "````\n\n\n" "## unknown\n\n" "| Name | unknown |\n" "|----|----|\n" "| Version | 1.0 |\n" "| Licenses | Apache Software License |\n\n" "unknown-1.0.dist-info/COPYING\n\n\n" "````\n" "license text for UNKNOWN here\n" "````\n\n\n" ) > assert expected == result.output E AssertionError: assert '# test-proje...e\n````\n\n\n' == '' E E + # test-project licenses E + ## bar E + E + | Name | bar | E + |----|----| E + | Version | 3.0.1 | E + | Licenses | B License | E + E + bar-3.0.1.dist-info/LICENSE E + E + E + ```` E + license text for bar here E + ```` E + E + E + ## baz E + E + | Name | baz | E + |----|----| E + | Version | 2.7 | E + | Licenses | C License | E + E + bar-2.7.dist-info/LICENSE E + E + E + ```` E + license text for baz here E + ```` E + E + E + ## classifier E + E + | Name | classifier | E + |----|----| E + | Version | 1.0 | E + | Licenses | PDM TEST D | E + E + classifier-1.0.dist-info/LICENCE E + E + E + ```` E + Problem finding license text: division by zero E + ```` E + E + E + ## foo E + E + | Name | foo | E + |----|----| E + | Version | 0.1.0 | E + | Licenses | A License | E + E + foo-0.1.0.dist-info/LICENSE E + E + E + ```` E + license text for foo here E + ```` E + E + E + ## unknown E + E + | Name | unknown | E + |----|----| E + | Version | 1.0 | E + | Licenses | Apache Software License | E + E + unknown-1.0.dist-info/COPYING E + E + E + ```` E + license text for UNKNOWN here E + ```` E + E + tests/cli/test_list.py:731: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_list_csv_include_exclude_valid ______________________ project = pdm = .caller at 0x7fc7d4debe20> @pytest.mark.usefixtures("working_set", "repository") def test_list_csv_include_exclude_valid(project, pdm): project.environment.python_requires = PySpecSet(">=3.6") dep_path = FIXTURES.joinpath("projects/demo").as_posix() > pdm(["add", "-de", f"{dep_path}[security]"], obj=project, strict=True) tests/cli/test_list.py:738: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '-de', '/usr/src/RPM/BUILD/pdm-2.11.2/tests/fixtures/projects/demo[security]'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_list_packages_in_given_venv _______________________ project = pdm = .caller at 0x7fc7d4deba60> @pytest.mark.usefixtures("local_finder") def test_list_packages_in_given_venv(project, pdm): project.pyproject.metadata["requires-python"] = ">=3.7" project.pyproject.write() project.global_config["python.use_venv"] = True > pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_list.py:764: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ________________________ test_list_csv_include_exclude _________________________ project = pdm = .caller at 0x7fc7d4acb9c0> @pytest.mark.usefixtures("working_set", "repository") def test_list_csv_include_exclude(project, pdm): project.environment.python_requires = PySpecSet(">=3.6") dep_path = FIXTURES.joinpath("projects/demo").as_posix() > pdm(["add", "-de", f"{dep_path}[security]"], obj=project, strict=True) tests/cli/test_list.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '-de', '/usr/src/RPM/BUILD/pdm-2.11.2/tests/fixtures/projects/demo[security]'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________________ test_lock_command _______________________________ project = pdm = .caller at 0x7fc7d4a93600> mocker = def test_lock_command(project, pdm, mocker): m = mocker.patch.object(actions, "do_lock") pdm(["lock"], obj=project) > m.assert_called_with(project, refresh=False, groups=["default"], hooks=ANY, strategy_change=None, strategy="all") tests/cli/test_lock.py:18: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = (,) kwargs = {'groups': ['default'], 'hooks': , 'refresh': False, 'strategy': 'all', ...} expected = "do_lock(, refresh=False, groups=['default'], hooks=, strategy_change=None, strategy='all')" actual = 'not called.' error_message = "expected call not found.\nExpected: do_lock(, refresh=False, groups=['default'], hooks=, strategy_change=None, strategy='all')\n Actual: not called." def assert_called_with(self, /, *args, **kwargs): """assert that the last call was made with the specified arguments. Raises an AssertionError if the args and keyword args passed in are different to the last call to the mock.""" if self.call_args is None: expected = self._format_mock_call_signature(args, kwargs) actual = 'not called.' error_message = ('expected call not found.\nExpected: %s\n Actual: %s' % (expected, actual)) > raise AssertionError(error_message) E AssertionError: expected call not found. E Expected: do_lock(, refresh=False, groups=['default'], hooks=, strategy_change=None, strategy='all') E Actual: not called. /usr/lib64/python3.12/unittest/mock.py:940: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_lock_refresh[args0] ___________________________ pdm = .caller at 0x7fc7d4a14680> project = repository = args = ('-S', 'static_urls') @pytest.mark.parametrize("args", [("-S", "static_urls"), ("--static-urls",)]) def test_lock_refresh(pdm, project, repository, args): project.add_dependencies({"requests": parse_requirement("requests")}) result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_lock.py:35: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________________ test_lock_refresh[args1] ___________________________ pdm = .caller at 0x7fc7d4778f40> project = repository = args = ('--static-urls',) @pytest.mark.parametrize("args", [("-S", "static_urls"), ("--static-urls",)]) def test_lock_refresh(pdm, project, repository, args): project.add_dependencies({"requests": parse_requirement("requests")}) result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_lock.py:35: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ______________________ test_lock_refresh_keep_consistent _______________________ pdm = .caller at 0x7fc7d4712f20> project = repository = def test_lock_refresh_keep_consistent(pdm, project, repository): project.add_dependencies({"requests": parse_requirement("requests")}) result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_lock.py:68: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ______________________ test_lock_check_no_change_success _______________________ pdm = .caller at 0x7fc7d459cae0> project = repository = def test_lock_check_no_change_success(pdm, project, repository): project.add_dependencies({"requests": parse_requirement("requests")}) result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_lock.py:79: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _________________________ test_lock_check_change_fails _________________________ pdm = .caller at 0x7fc7d451ea20> project = repository = def test_lock_check_change_fails(pdm, project, repository): project.add_dependencies({"requests": parse_requirement("requests")}) result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_lock.py:89: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________ test_innovations_with_specified_lockfile ___________________ pdm = .caller at 0x7fc7d459cea0> project = working_set = @pytest.mark.usefixtures("repository") def test_innovations_with_specified_lockfile(pdm, project, working_set): project.add_dependencies({"requests": parse_requirement("requests")}) lockfile = str(project.root / "mylock.lock") > pdm(["lock", "--lockfile", lockfile], strict=True, obj=project) tests/cli/test_lock.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--lockfile', '/usr/src/tmp/pytest-of-builder/pytest-0/test_innovations_with_specifie0/mylock.lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. __________________________ test_lock_selected_groups ___________________________ project = pdm = .caller at 0x7fc7d45c4d60> @pytest.mark.usefixtures("repository") def test_lock_selected_groups(project, pdm): project.add_dependencies({"requests": parse_requirement("requests")}, to_group="http") project.add_dependencies({"pytz": parse_requirement("pytz")}) > pdm(["lock", "-G", "http", "--no-default"], obj=project, strict=True) tests/cli/test_lock.py:125: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-G', 'http', '--no-default'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________ test_lock_self_referencing_groups[False] ___________________ project = pdm = .caller at 0x7fc7d44111c0>, to_dev = False @pytest.mark.usefixtures("repository") @pytest.mark.parametrize("to_dev", [False, True]) def test_lock_self_referencing_groups(project, pdm, to_dev): name = project.name project.add_dependencies({"requests": parse_requirement("requests")}, to_group="http", dev=to_dev) project.add_dependencies( {"pytz": parse_requirement("pytz"), f"{name}[http]": parse_requirement(f"{name}[http]")}, to_group="dev", dev=True, ) > pdm(["lock", "-G", "dev"], obj=project, strict=True) tests/cli/test_lock.py:141: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-G', 'dev'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________ test_lock_self_referencing_groups[True] ____________________ project = pdm = .caller at 0x7fc7d447f1a0>, to_dev = True @pytest.mark.usefixtures("repository") @pytest.mark.parametrize("to_dev", [False, True]) def test_lock_self_referencing_groups(project, pdm, to_dev): name = project.name project.add_dependencies({"requests": parse_requirement("requests")}, to_group="http", dev=to_dev) project.add_dependencies( {"pytz": parse_requirement("pytz"), f"{name}[http]": parse_requirement(f"{name}[http]")}, to_group="dev", dev=True, ) > pdm(["lock", "-G", "dev"], obj=project, strict=True) tests/cli/test_lock.py:141: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-G', 'dev'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_lock_multiple_platform_wheels ______________________ project = pdm = .caller at 0x7fc7d46f09a0> @pytest.mark.usefixtures("local_finder") def test_lock_multiple_platform_wheels(project, pdm): project.environment.python_requires = PySpecSet(">=3.7") project.add_dependencies({"pdm-hello": parse_requirement("pdm-hello")}) > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:150: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________ test_lock_current_platform_wheels[args0] ___________________ project = pdm = .caller at 0x7fc7d462e840> args = ('--no-cross-platform',) @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("args", [("--no-cross-platform",), ("-S", "no_cross_platform")]) def test_lock_current_platform_wheels(project, pdm, args): project.environment.python_requires = PySpecSet(">=3.7") project.add_dependencies({"pdm-hello": parse_requirement("pdm-hello")}) > pdm(["lock", *args], obj=project, strict=True) tests/cli/test_lock.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '--no-cross-platform'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________ test_lock_current_platform_wheels[args1] ___________________ project = pdm = .caller at 0x7fc7d46f87c0> args = ('-S', 'no_cross_platform') @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("args", [("--no-cross-platform",), ("-S", "no_cross_platform")]) def test_lock_current_platform_wheels(project, pdm, args): project.environment.python_requires = PySpecSet(">=3.7") project.add_dependencies({"pdm-hello": parse_requirement("pdm-hello")}) > pdm(["lock", *args], obj=project, strict=True) tests/cli/test_lock.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-S', 'no_cross_platform'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ____________________ test_parse_lock_strategy_group_options ____________________ core = def test_parse_lock_strategy_group_options(core): core.init_parser() parser = core.parser > ns = parser.parse_args(["lock", "-S", "no_cross_platform"]) tests/cli/test_lock.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-S', 'no_cross_platform'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ______________________ test_lock_direct_minimal_versions _______________________ project = repository = pdm = .caller at 0x7fc7d4373b00> def test_lock_direct_minimal_versions(project, repository, pdm): project.add_dependencies({"django": parse_requirement("django")}) repository.add_candidate("pytz", "2019.6") > pdm(["lock", "-S", "direct_minimal_versions"], obj=project, strict=True) tests/cli/test_lock.py:201: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-S', 'direct_minimal_versions'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ________________ test_lock_direct_minimal_versions_real[args0] _________________ project = pdm = .caller at 0x7fc7d46f9f80>, args = () @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("args", [(), ("-S", "direct_minimal_versions")]) def test_lock_direct_minimal_versions_real(project, pdm, args): project.add_dependencies({"zipp": parse_requirement("zipp")}) > pdm(["lock", *args], obj=project, strict=True) tests/cli/test_lock.py:212: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ________________ test_lock_direct_minimal_versions_real[args1] _________________ project = pdm = .caller at 0x7fc7cfd58fe0> args = ('-S', 'direct_minimal_versions') @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("args", [(), ("-S", "direct_minimal_versions")]) def test_lock_direct_minimal_versions_real(project, pdm, args): project.add_dependencies({"zipp": parse_requirement("zipp")}) > pdm(["lock", *args], obj=project, strict=True) tests/cli/test_lock.py:212: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-S', 'direct_minimal_versions'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _____________________ test_lockfile_compatibility[4.1.0-2] _____________________ project = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7cfd77a10> lock_version = '4.1.0', expected = pdm = .caller at 0x7fc7cfdcf740> @pytest.mark.parametrize( "lock_version,expected", [ ("4.1.0", Compatibility.BACKWARD), ("4.1.1", Compatibility.SAME), ("4.1.2", Compatibility.FORWARD), ("4.2", Compatibility.NONE), ("3.0", Compatibility.NONE), ("4.0.1", Compatibility.BACKWARD), ], ) def test_lockfile_compatibility(project, monkeypatch, lock_version, expected, pdm): > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:232: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_lockfile_compatibility[4.1.1-1] _____________________ project = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7cfdff3b0> lock_version = '4.1.1', expected = pdm = .caller at 0x7fc7cfded4e0> @pytest.mark.parametrize( "lock_version,expected", [ ("4.1.0", Compatibility.BACKWARD), ("4.1.1", Compatibility.SAME), ("4.1.2", Compatibility.FORWARD), ("4.2", Compatibility.NONE), ("3.0", Compatibility.NONE), ("4.0.1", Compatibility.BACKWARD), ], ) def test_lockfile_compatibility(project, monkeypatch, lock_version, expected, pdm): > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:232: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_lockfile_compatibility[4.1.2-3] _____________________ project = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7cfd02d80> lock_version = '4.1.2', expected = pdm = .caller at 0x7fc7cfdf3060> @pytest.mark.parametrize( "lock_version,expected", [ ("4.1.0", Compatibility.BACKWARD), ("4.1.1", Compatibility.SAME), ("4.1.2", Compatibility.FORWARD), ("4.2", Compatibility.NONE), ("3.0", Compatibility.NONE), ("4.0.1", Compatibility.BACKWARD), ], ) def test_lockfile_compatibility(project, monkeypatch, lock_version, expected, pdm): > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:232: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_lockfile_compatibility[4.2-0] ______________________ project = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7d41e7260> lock_version = '4.2', expected = pdm = .caller at 0x7fc7d41a0d60> @pytest.mark.parametrize( "lock_version,expected", [ ("4.1.0", Compatibility.BACKWARD), ("4.1.1", Compatibility.SAME), ("4.1.2", Compatibility.FORWARD), ("4.2", Compatibility.NONE), ("3.0", Compatibility.NONE), ("4.0.1", Compatibility.BACKWARD), ], ) def test_lockfile_compatibility(project, monkeypatch, lock_version, expected, pdm): > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:232: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_lockfile_compatibility[3.0-0] ______________________ project = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7d41bd9a0> lock_version = '3.0', expected = pdm = .caller at 0x7fc7d416aac0> @pytest.mark.parametrize( "lock_version,expected", [ ("4.1.0", Compatibility.BACKWARD), ("4.1.1", Compatibility.SAME), ("4.1.2", Compatibility.FORWARD), ("4.2", Compatibility.NONE), ("3.0", Compatibility.NONE), ("4.0.1", Compatibility.BACKWARD), ], ) def test_lockfile_compatibility(project, monkeypatch, lock_version, expected, pdm): > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:232: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_lockfile_compatibility[4.0.1-2] _____________________ project = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7d41f90a0> lock_version = '4.0.1', expected = pdm = .caller at 0x7fc7d4153d80> @pytest.mark.parametrize( "lock_version,expected", [ ("4.1.0", Compatibility.BACKWARD), ("4.1.1", Compatibility.SAME), ("4.1.2", Compatibility.FORWARD), ("4.2", Compatibility.NONE), ("3.0", Compatibility.NONE), ("4.0.1", Compatibility.BACKWARD), ], ) def test_lockfile_compatibility(project, monkeypatch, lock_version, expected, pdm): > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:232: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_lock_default_inherit_metadata ______________________ project = pdm = .caller at 0x7fc7cff9a340> mocker = working_set = def test_lock_default_inherit_metadata(project, pdm, mocker, working_set): project.add_dependencies({"requests": parse_requirement("requests")}) > pdm(["lock"], obj=project, strict=True) tests/cli/test_lock.py:242: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _____________________ test_lock_inherit_metadata_strategy ______________________ project = pdm = .caller at 0x7fc7cff13ce0> mocker = working_set = def test_lock_inherit_metadata_strategy(project, pdm, mocker, working_set): project.add_dependencies({"requests": parse_requirement("requests")}) > pdm(["lock", "-S", "inherit_metadata"], obj=project, strict=True) tests/cli/test_lock.py:256: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['lock', '-S', 'inherit_metadata'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. __________________________ test_project_no_init_error __________________________ project_no_init = pdm = .caller at 0x7fc7d4271da0> def test_project_no_init_error(project_no_init, pdm): for command in ("add", "lock", "update"): result = pdm([command], obj=project_no_init) assert result.exit_code != 0 > assert "The pyproject.toml has not been initialized yet" in result.stderr E AssertionError: assert 'The pyproject.toml has not been initialized yet' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_others.py:28: AssertionError _______________________________ test_help_option _______________________________ pdm = .caller at 0x7fc7d4267380> def test_help_option(pdm): result = pdm(["--help"]) > assert "Usage: pdm [-h]" in result.output E AssertionError: assert 'Usage: pdm [-h]' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output tests/cli/test_others.py:33: AssertionError ______________________________ test_pep582_option ______________________________ pdm = .caller at 0x7fc7d437da80> def test_pep582_option(pdm): result = pdm(["--pep582", "bash"]) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:38: AssertionError ______________________________ test_info_command _______________________________ project = pdm = .caller at 0x7fc7d437c860> def test_info_command(project, pdm): result = pdm(["info"], obj=project) > assert "Project Root:" in result.output E AssertionError: assert 'Project Root:' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output tests/cli/test_others.py:43: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________________ test_info_command_json ____________________________ project = pdm = .caller at 0x7fc7cffa3880> def test_info_command_json(project, pdm): > result = pdm(["info", "--json"], obj=project, strict=True) tests/cli/test_others.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['info', '--json'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_info_global_project ___________________________ pdm = .caller at 0x7fc7d4294a40> tmp_path = PosixPath('/usr/src/tmp/pytest-of-builder/pytest-0/test_info_global_project0') def test_info_global_project(pdm, tmp_path): with cd(tmp_path): result = pdm(["info", "-g", "--where"]) > assert "global-project" in result.output.strip() E AssertionError: assert 'global-project' in '' E + where '' = () E + where = ''.strip E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output tests/cli/test_others.py:72: AssertionError ________________________ test_info_with_multiple_venvs _________________________ pdm = .caller at 0x7fc7d42fa200> project = def test_info_with_multiple_venvs(pdm, project): project.global_config["python.use_venv"] = True > pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_others.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_global_project_other_location ______________________ pdm = .caller at 0x7fc7cfcb3e20> project = def test_global_project_other_location(pdm, project): result = pdm(["info", "-g", "-p", project.root.as_posix(), "--where"]) > assert result.stdout.strip() == str(project.root) E AssertionError: assert '' == '/usr/src/tmp...t_other_loca0' E E - /usr/src/tmp/pytest-of-builder/pytest-0/test_global_project_other_loca0 tests/cli/test_others.py:94: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_uncaught_error ______________________________ pdm = .caller at 0x7fc7cfca5b20> mocker = def test_uncaught_error(pdm, mocker): mocker.patch.object(actions, "do_lock", side_effect=RuntimeError("test error")) result = pdm(["lock"]) > assert "[RuntimeError]: test error" in result.stderr E AssertionError: assert '[RuntimeError]: test error' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_others.py:100: AssertionError _______________ test_import_other_format_file[requirements.txt] ________________ project = pdm = .caller at 0x7fc7cfcffce0> filename = 'requirements.txt' @pytest.mark.parametrize( "filename", [ "requirements.txt", "Pipfile", "pyproject.toml", "projects/flit-demo/pyproject.toml", ], ) def test_import_other_format_file(project, pdm, filename): requirements_file = FIXTURES / filename result = pdm(["import", str(requirements_file)], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:118: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________ test_import_other_format_file[Pipfile] ____________________ project = pdm = .caller at 0x7fc7cfc618a0>, filename = 'Pipfile' @pytest.mark.parametrize( "filename", [ "requirements.txt", "Pipfile", "pyproject.toml", "projects/flit-demo/pyproject.toml", ], ) def test_import_other_format_file(project, pdm, filename): requirements_file = FIXTURES / filename result = pdm(["import", str(requirements_file)], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:118: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________ test_import_other_format_file[pyproject.toml] _________________ project = pdm = .caller at 0x7fc7cfa57420> filename = 'pyproject.toml' @pytest.mark.parametrize( "filename", [ "requirements.txt", "Pipfile", "pyproject.toml", "projects/flit-demo/pyproject.toml", ], ) def test_import_other_format_file(project, pdm, filename): requirements_file = FIXTURES / filename result = pdm(["import", str(requirements_file)], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:118: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______ test_import_other_format_file[projects/flit-demo/pyproject.toml] _______ project = pdm = .caller at 0x7fc7cfe24fe0> filename = 'projects/flit-demo/pyproject.toml' @pytest.mark.parametrize( "filename", [ "requirements.txt", "Pipfile", "pyproject.toml", "projects/flit-demo/pyproject.toml", ], ) def test_import_other_format_file(project, pdm, filename): requirements_file = FIXTURES / filename result = pdm(["import", str(requirements_file)], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:118: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_import_requirement_no_overwrite _____________________ project = pdm = .caller at 0x7fc7cfe4ed40> tmp_path = PosixPath('/usr/src/tmp/pytest-of-builder/pytest-0/test_import_requirement_no_ove0') def test_import_requirement_no_overwrite(project, pdm, tmp_path): project.add_dependencies({"requests": parse_requirement("requests")}) tmp_path.joinpath("reqs.txt").write_text("flask\nflask-login\n") result = pdm(["import", "-dGweb", str(tmp_path.joinpath("reqs.txt"))], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:125: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ____________________________ test_show_self_package ____________________________ project = pdm = .caller at 0x7fc7cfe5bec0> def test_show_self_package(project, pdm): result = pdm(["show"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:161: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_export_to_requirements_txt ________________________ pdm = .caller at 0x7fc7cfeb5c60> fixture_project = .func at 0x7fc7cfeb63e0> def test_export_to_requirements_txt(pdm, fixture_project): project = fixture_project("demo-package") requirements_txt = project.root / "requirements.txt" requirements_no_hashes = project.root / "requirements_simple.txt" requirements_pyproject = project.root / "requirements.ini" result = pdm(["export"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:175: AssertionError __________________ test_export_doesnt_include_dep_with_extras __________________ pdm = .caller at 0x7fc7cfb43ec0> fixture_project = .func at 0x7fc7cfbc0680> def test_export_doesnt_include_dep_with_extras(pdm, fixture_project): project = fixture_project("demo-package-has-dep-with-extras") requirements_txt = project.root / "requirements.txt" result = pdm(["export", "--without-hashes"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:204: AssertionError ___________________________ test_completion_command ____________________________ pdm = .caller at 0x7fc7cfb91e40> def test_completion_command(pdm): result = pdm(["completion", "bash"]) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_others.py:210: AssertionError ________________________ test_publish_pick_up_asc_files ________________________ project = uploaded = [], pdm = .caller at 0x7fc7cfbc9c60> @pytest.mark.usefixtures("prepare_packages") def test_publish_pick_up_asc_files(project, uploaded, pdm): for p in list(project.root.joinpath("dist").iterdir()): with open(str(p) + ".asc", "w") as f: f.write("fake signature") > pdm( ["publish", "--no-build", "--username=abc", "--password=123"], obj=project, strict=True, ) tests/cli/test_publish.py:85: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--no-build', '--username=abc', '--password=123'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_publish_package_with_signature ______________________ project = uploaded = [], pdm = .caller at 0x7fc7cfbca480> @pytest.mark.usefixtures("prepare_packages") def test_publish_package_with_signature(project, uploaded, pdm): > pdm( ["publish", "--no-build", "-S", "--username=abc", "--password=123"], obj=project, strict=True, ) tests/cli/test_publish.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--no-build', '-S', '--username=abc', '--password=123'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_publish_and_build_in_one_run _______________________ fixture_project = .func at 0x7fc7cf99b880> pdm = .caller at 0x7fc7cf99b740> mock_pypi = @pytest.mark.usefixtures("local_finder") def test_publish_and_build_in_one_run(fixture_project, pdm, mock_pypi): project = fixture_project("demo-module") > result = pdm(["publish", "--username=abc", "--password=123"], obj=project, strict=True).output tests/cli/test_publish.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['publish', '--username=abc', '--password=123'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_remove_command ______________________________ project = pdm = .caller at 0x7fc7cf899580> mocker = def test_remove_command(project, pdm, mocker): do_remove = mocker.patch("pdm.cli.commands.remove.Command.do_remove") pdm(["remove", "demo"], obj=project) > do_remove.assert_called_once() tests/cli/test_remove.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'do_remove' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________ test_remove_editable_packages_while_keeping_normal ______________ project = pdm = .caller at 0x7fc7cf957240> @pytest.mark.usefixtures("working_set", "vcs") def test_remove_editable_packages_while_keeping_normal(project, pdm): project.environment.python_requires = PySpecSet(">=3.6") > pdm(["add", "demo"], obj=project, strict=True) tests/cli/test_remove.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_remove_package[False] __________________________ project = working_set = dev_option = (), pdm = .caller at 0x7fc7cf880040> def test_remove_package(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "requests", "pytz"], obj=project, strict=True) tests/cli/test_remove.py:28: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________________ test_remove_package[True] ___________________________ project = working_set = dev_option = ('--dev',), pdm = .caller at 0x7fc7cf695d00> def test_remove_package(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "requests", "pytz"], obj=project, strict=True) tests/cli/test_remove.py:28: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_remove_package_no_lock[False] ______________________ project = working_set = dev_option = (), pdm = .caller at 0x7fc7cf623ec0> def test_remove_package_no_lock(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "requests", "pytz"], obj=project, strict=True) tests/cli/test_remove.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_remove_package_no_lock[True] _______________________ project = working_set = dev_option = ('--dev',), pdm = .caller at 0x7fc7cf67dd00> def test_remove_package_no_lock(project, working_set, dev_option, pdm): > pdm(["add", *dev_option, "requests", "pytz"], obj=project, strict=True) tests/cli/test_remove.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--dev', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_remove_package_with_dry_run _______________________ project = working_set = pdm = .caller at 0x7fc7cf61be20> def test_remove_package_with_dry_run(project, working_set, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_remove.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________________ test_remove_package_no_sync __________________________ project = working_set = pdm = .caller at 0x7fc7cf7fdb20> def test_remove_package_no_sync(project, working_set, pdm): > pdm(["add", "requests", "pytz"], obj=project, strict=True) tests/cli/test_remove.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_remove_package_not_exist _________________________ project = pdm = .caller at 0x7fc7cf9f67a0> @pytest.mark.usefixtures("working_set") def test_remove_package_not_exist(project, pdm): > pdm(["add", "requests", "pytz"], obj=project, strict=True) tests/cli/test_remove.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_remove_package_exist_in_multi_groups ___________________ project = working_set = pdm = .caller at 0x7fc7cfa0d760> def test_remove_package_exist_in_multi_groups(project, working_set, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_remove.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_remove_package_wont_break_toml ______________________ project_no_init = pdm = .caller at 0x7fc7cfa0e200> @pytest.mark.usefixtures("working_set") def test_remove_package_wont_break_toml(project_no_init, pdm): project_no_init.pyproject._path.write_text( """ [project] dependencies = [ "requests", # this is a comment ] """ ) project_no_init.pyproject.reload() > pdm(["remove", "requests"], obj=project_no_init, strict=True) tests/cli/test_remove.py:96: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['remove', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_remove_group_not_in_lockfile _______________________ project = pdm = .caller at 0x7fc7cf76d260> mocker = @pytest.mark.usefixtures("working_set") def test_remove_group_not_in_lockfile(project, pdm, mocker): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_remove.py:102: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_pep582_launcher_for_python_interpreter __________________ project = local_finder = None, pdm = .caller at 0x7fc7cf792700> def test_pep582_launcher_for_python_interpreter(project, local_finder, pdm): project.root.joinpath("main.py").write_text("import first;print(first.first([0, False, 1, 2]))\n") result = pdm(["add", "first"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:34: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_auto_isolate_site_packages ________________________ project = pdm = .caller at 0x7fc7cf278e00> def test_auto_isolate_site_packages(project, pdm): env = os.environ.copy() env.update({"PYTHONPATH": get_pep582_path(project)}) proc = subprocess.run( [str(project.python.executable), "-c", "import sys;print(sys.path, sep='\\n')"], env=env, capture_output=True, text=True, cwd=str(project.root), check=True, ) assert any("site-packages" in path for path in proc.stdout.splitlines()) > result = pdm( ["run", "python", "-c", "import sys;print(sys.path, sep='\\n')"], obj=project, strict=True, ) tests/cli/test_run.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'python', '-c', "import sys;print(sys.path, sep='\\n')"] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_run_with_site_packages __________________________ project = pdm = .caller at 0x7fc7cf2cec00> def test_run_with_site_packages(project, pdm): project.pyproject.settings["scripts"] = { "foo": { "cmd": ["python", "-c", "import sys;print(sys.path, sep='\\n')"], "site_packages": True, } } project.pyproject.write() result = pdm( [ "run", "--site-packages", "python", "-c", "import sys;print(sys.path, sep='\\n')", ], obj=project, ) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:83: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. __________________________ test_run_command_not_found __________________________ pdm = .caller at 0x7fc7cf218180> def test_run_command_not_found(pdm): result = pdm(["run", "foobar"]) > assert "Command 'foobar' is not found in your PATH." in result.stderr E assert "Command 'foobar' is not found in your PATH." in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_run.py:90: AssertionError _____________________________ test_run_cmd_script ______________________________ project = pdm = .caller at 0x7fc7cf2db6a0> def test_run_cmd_script(project, pdm): project.pyproject.settings["scripts"] = {"test_script": "python -V"} project.pyproject.write() result = pdm(["run", "test_script"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:103: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ________________________ test_run_cmd_script_with_array ________________________ project = pdm = .caller at 0x7fc7cf20d440> def test_run_cmd_script_with_array(project, pdm): project.pyproject.settings["scripts"] = {"test_script": ["python", "-c", "import sys; sys.exit(22)"]} project.pyproject.write() result = pdm(["run", "test_script"], obj=project) > assert result.exit_code == 22 E AssertionError: assert 1 == 22 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:110: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ______________________ test_run_script_pass_project_root _______________________ project = pdm = .caller at 0x7fc7cf5a7380> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf2c2d20> def test_run_script_pass_project_root(project, pdm, capfd): project.pyproject.settings["scripts"] = { "test_script": [ "python", "-c", "import os;print(os.getenv('PDM_PROJECT_ROOT'))", ] } project.pyproject.write() capfd.readouterr() result = pdm(["run", "test_script"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:124: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________________ test_run_shell_script _____________________________ project = pdm = .caller at 0x7fc7cf1a4fe0> def test_run_shell_script(project, pdm): project.pyproject.settings["scripts"] = { "test_script": { "shell": "echo hello > output.txt", "help": "test it won't fail", } } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:139: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ______________________ test_run_script_with_relative_path ______________________ project = pdm = .caller at 0x7fc7cf1c2700> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf157e60> def test_run_script_with_relative_path(project, pdm, capfd): if os.name == "nt": (project.root / "test_script.bat").write_text("@echo Hello\n") else: (project.root / "test_script.sh").write_text("#!/bin/bash\necho Hello\n") (project.root / "test_script.sh").chmod(0o755) with cd(project.root): > pdm(["run", "./test_script.bat" if os.name == "nt" else "./test_script.sh"], obj=project, strict=True) tests/cli/test_run.py:150: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', './test_script.sh'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_run_non_existing_local_script ______________________ project = pdm = .caller at 0x7fc7cf194a40> def test_run_non_existing_local_script(project, pdm): with cd(project.root): result = pdm(["run", "./test_script.sh"], obj=project) assert result.exit_code != 0 > assert "not a valid executable" in result.stderr E AssertionError: assert 'not a valid executable' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_run.py:159: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________ test_run_shell_script_with_args_placeholder[with-args] ____________ project = pdm = .caller at 0x7fc7cf1ba700>, args = ['hello'] expected = 'ok hello' @pytest.mark.parametrize( "args,expected", ( pytest.param(["hello"], "ok hello", id="with-args"), pytest.param([], "ok", id="without-args"), ), ) def test_run_shell_script_with_args_placeholder(project, pdm, args, expected): project.pyproject.settings["scripts"] = { "test_script": { "shell": "echo ok {args} > output.txt", "help": "test it won't fail", } } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script", *args], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:179: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. __________ test_run_shell_script_with_args_placeholder[without-args] ___________ project = pdm = .caller at 0x7fc7cf44fe20>, args = [] expected = 'ok' @pytest.mark.parametrize( "args,expected", ( pytest.param(["hello"], "ok hello", id="with-args"), pytest.param([], "ok", id="without-args"), ), ) def test_run_shell_script_with_args_placeholder(project, pdm, args, expected): project.pyproject.settings["scripts"] = { "test_script": { "shell": "echo ok {args} > output.txt", "help": "test it won't fail", } } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script", *args], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:179: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _____ test_run_shell_script_with_args_placeholder_with_default[with-args] ______ project = pdm = .caller at 0x7fc7cf456340>, args = ['hello'] expected = 'hello' @pytest.mark.parametrize( "args,expected", ( pytest.param(["hello"], "hello", id="with-args"), pytest.param([], "default", id="with-default"), ), ) def test_run_shell_script_with_args_placeholder_with_default(project, pdm, args, expected): project.pyproject.settings["scripts"] = { "test_script": { "shell": "echo {args:default} > output.txt", "help": "test it won't fail", } } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script", *args], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:200: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ____ test_run_shell_script_with_args_placeholder_with_default[with-default] ____ project = pdm = .caller at 0x7fc7cf4a3ce0>, args = [] expected = 'default' @pytest.mark.parametrize( "args,expected", ( pytest.param(["hello"], "hello", id="with-args"), pytest.param([], "default", id="with-default"), ), ) def test_run_shell_script_with_args_placeholder_with_default(project, pdm, args, expected): project.pyproject.settings["scripts"] = { "test_script": { "shell": "echo {args:default} > output.txt", "help": "test it won't fail", } } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script", *args], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:200: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _____________________________ test_run_call_script _____________________________ project = pdm = .caller at 0x7fc7cf3ed6c0> def test_run_call_script(project, pdm): (project.root / "test_script.py").write_text( textwrap.dedent( """ import argparse import sys def main(argv=None): parser = argparse.ArgumentParser() parser.add_argument("-c", "--code", type=int) args = parser.parse_args(argv) sys.exit(args.code) """ ) ) project.pyproject.settings["scripts"] = { "test_script": {"call": "test_script:main"}, "test_script_with_args": {"call": "test_script:main(['-c', '9'])"}, } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script", "-c", "8"], obj=project) > assert result.exit_code == 8 E AssertionError: assert 1 == 8 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:226: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _______________________ test_run_script_with_extra_args ________________________ project = pdm = .caller at 0x7fc7cf393600> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf309d30> def test_run_script_with_extra_args(project, pdm, capfd): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": "python test_script.py"} project.pyproject.write() with cd(project.root): pdm(["run", "test_script", "-a", "-b", "-c"], obj=project) out, _ = capfd.readouterr() > assert out.splitlines()[-3:] == ["-a", "-b", "-c"] E AssertionError: assert ['Changes are...roject.toml.'] == ['-a', '-b', '-c'] E E At index 0 diff: 'Changes are written to pyproject.toml.' != '-a' E Right contains 2 more items, first extra item: '-b' E E Full diff: E [ E + 'Changes are written to pyproject.toml.', E - '-a', E - '-b', E - '-c', E ] tests/cli/test_run.py:246: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________ test_run_script_with_args_placeholder[as-str-with-args] ____________ project = pdm = .caller at 0x7fc7cf3f91c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf3730b0> script = 'python test_script.py {args} -x', args = ['-a', '-b', '-c'] expected = ['-a', '-b', '-c', '-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["-x"], id="without-args"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['-a', '-b', '-c', '-x'] E E Right contains 4 more items, first extra item: '-a' E E Full diff: E + [] E - [ E - '-a', E - '-b', E - '-c', E - '-x', E - ] tests/cli/test_run.py:277: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________ test_run_script_with_args_placeholder[as-str-without-args] __________ project = pdm = .caller at 0x7fc7cf0d7740> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf002ff0> script = 'python test_script.py {args} -x', args = [], expected = ['-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["-x"], id="without-args"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['-x'] E E Right contains one more item: '-x' E E Full diff: E + [] E - [ E - '-x', E - ] tests/cli/test_run.py:277: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________ test_run_script_with_args_placeholder[as-list-with-args] ___________ project = pdm = .caller at 0x7fc7cf0d7380> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf028230> script = ['python', 'test_script.py', '{args}', '-x'], args = ['-a', '-b', '-c'] expected = ['-a', '-b', '-c', '-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["-x"], id="without-args"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['-a', '-b', '-c', '-x'] E E Right contains 4 more items, first extra item: '-a' E E Full diff: E + [] E - [ E - '-a', E - '-b', E - '-c', E - '-x', E - ] tests/cli/test_run.py:277: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________ test_run_script_with_args_placeholder[as-list-without-args] __________ project = pdm = .caller at 0x7fc7cf0531a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf0a6ea0> script = ['python', 'test_script.py', '{args}', '-x'], args = [] expected = ['-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["-x"], id="without-args"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['-x'] E E Right contains one more item: '-x' E E Full diff: E + [] E - [ E - '-x', E - ] tests/cli/test_run.py:277: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____ test_run_script_with_args_placeholder_with_default[as-str-with-args] _____ project = pdm = .caller at 0x7fc7ceeb11c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf0a7da0> script = 'python test_script.py {args:--default --value} -x' args = ['-a', '-b', '-c'], expected = ['-a', '-b', '-c', '-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["--default", "--value", "-x"], id="default"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args:--default --value} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args:--default --value}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder_with_default(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['-a', '-b', '-c', '-x'] E E Right contains 4 more items, first extra item: '-a' E E Full diff: E + [] E - [ E - '-a', E - '-b', E - '-c', E - '-x', E - ] tests/cli/test_run.py:308: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______ test_run_script_with_args_placeholder_with_default[as-str-default] ______ project = pdm = .caller at 0x7fc7ceefad40> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ceeaf1d0> script = 'python test_script.py {args:--default --value} -x', args = [] expected = ['--default', '--value', '-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["--default", "--value", "-x"], id="default"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args:--default --value} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args:--default --value}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder_with_default(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['--default', '--value', '-x'] E E Right contains 3 more items, first extra item: '--default' E E Full diff: E + [] E - [ E - '--default', E - '--value', E - '-x', E - ] tests/cli/test_run.py:308: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____ test_run_script_with_args_placeholder_with_default[as-list-with-args] _____ project = pdm = .caller at 0x7fc7cee3ccc0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cee43ef0> script = ['python', 'test_script.py', '{args:--default --value}', '-x'] args = ['-a', '-b', '-c'], expected = ['-a', '-b', '-c', '-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["--default", "--value", "-x"], id="default"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args:--default --value} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args:--default --value}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder_with_default(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['-a', '-b', '-c', '-x'] E E Right contains 4 more items, first extra item: '-a' E E Full diff: E + [] E - [ E - '-a', E - '-b', E - '-c', E - '-x', E - ] tests/cli/test_run.py:308: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____ test_run_script_with_args_placeholder_with_default[as-list-default] ______ project = pdm = .caller at 0x7fc7ceee2980> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ceeae840> script = ['python', 'test_script.py', '{args:--default --value}', '-x'] args = [], expected = ['--default', '--value', '-x'] @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a", "-b", "-c"], ["-a", "-b", "-c", "-x"], id="with-args"), pytest.param([], ["--default", "--value", "-x"], id="default"), ), ) @pytest.mark.parametrize( "script", ( pytest.param("python test_script.py {args:--default --value} -x", id="as-str"), pytest.param(["python", "test_script.py", "{args:--default --value}", "-x"], id="as-list"), ), ) def test_run_script_with_args_placeholder_with_default(project, pdm, capfd, script, args, expected): (project.root / "test_script.py").write_text( textwrap.dedent( """ import sys print(*sys.argv[1:], sep='\\n') """ ) ) project.pyproject.settings["scripts"] = {"test_script": script} project.pyproject.write() with cd(project.root): pdm(["run", "-v", "test_script", *args], obj=project) out, _ = capfd.readouterr() > assert out.strip().splitlines()[1:] == expected E AssertionError: assert [] == ['--default', '--value', '-x'] E E Right contains 3 more items, first extra item: '--default' E E Full diff: E + [] E - [ E - '--default', E - '--value', E - '-x', E - ] tests/cli/test_run.py:308: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________ test_run_shell_script_with_pdm_placeholder __________________ project = pdm = .caller at 0x7fc7ced10180> def test_run_shell_script_with_pdm_placeholder(project, pdm): project.pyproject.settings["scripts"] = { "test_script": { "shell": "{pdm} -V > output.txt", "help": "test it won't fail", } } project.pyproject.write() with cd(project.root): result = pdm(["run", "test_script"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:321: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________________ test_run_expand_env_vars ___________________________ project = pdm = .caller at 0x7fc7ced7e020> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cedfbf20> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7cedc1f40> def test_run_expand_env_vars(project, pdm, capfd, monkeypatch): (project.root / "test_script.py").write_text("import os; print(os.getenv('FOO'))") project.pyproject.settings["scripts"] = { "test_cmd": 'python -c "foo, bar = 0, 1;print($FOO)"', "test_cmd_no_expand": "python -c 'print($FOO)'", "test_script": "python test_script.py", "test_cmd_array": ["python", "test_script.py"], "test_shell": {"shell": "echo $FOO"}, } project.pyproject.write() capfd.readouterr() with cd(project.root): monkeypatch.setenv("FOO", "bar") pdm(["run", "test_cmd"], obj=project) > assert capfd.readouterr()[0].strip() == "1" E AssertionError: assert '' == '1' E E - 1 tests/cli/test_run.py:339: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_run_script_with_env_defined _______________________ project = pdm = .caller at 0x7fc7ced5bd80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ced40e90> def test_run_script_with_env_defined(project, pdm, capfd): (project.root / "test_script.py").write_text("import os; print(os.getenv('FOO'))") project.pyproject.settings["scripts"] = {"test_script": {"cmd": "python test_script.py", "env": {"FOO": "bar"}}} project.pyproject.write() capfd.readouterr() with cd(project.root): pdm(["run", "test_script"], obj=project) > assert capfd.readouterr()[0].strip() == "bar" E AssertionError: assert '' == 'bar' E E - bar tests/cli/test_run.py:361: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_run_script_with_dotenv_file _______________________ project = pdm = .caller at 0x7fc7cec79b20> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cec079e0> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7cec6e870> def test_run_script_with_dotenv_file(project, pdm, capfd, monkeypatch): (project.root / "test_script.py").write_text("import os; print(os.getenv('FOO'), os.getenv('BAR'))") project.pyproject.settings["scripts"] = { "test_override": { "cmd": "python test_script.py", "env_file": {"override": ".env"}, }, "test_default": {"cmd": "python test_script.py", "env_file": ".env"}, } project.pyproject.write() monkeypatch.setenv("BAR", "foo") (project.root / ".env").write_text("FOO=bar\nBAR=override") capfd.readouterr() with cd(project.root): pdm(["run", "test_default"], obj=project) > assert capfd.readouterr()[0].strip() == "bar foo" E AssertionError: assert '' == 'bar foo' E E - bar foo tests/cli/test_run.py:379: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________ test_run_script_override_global_env ______________________ project = pdm = .caller at 0x7fc7ceccfba0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cec48050> def test_run_script_override_global_env(project, pdm, capfd): (project.root / "test_script.py").write_text("import os; print(os.getenv('FOO'))") project.pyproject.settings["scripts"] = { "_": {"env": {"FOO": "bar"}}, "test_env": {"cmd": "python test_script.py"}, "test_env_override": {"cmd": "python test_script.py", "env": {"FOO": "foobar"}}, } project.pyproject.write() capfd.readouterr() with cd(project.root): pdm(["run", "test_env"], obj=project) > assert capfd.readouterr()[0].strip() == "bar" E AssertionError: assert '' == 'bar' E E - bar tests/cli/test_run.py:395: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_run_show_list_of_scripts _________________________ project = pdm = .caller at 0x7fc7cec95b20> def test_run_show_list_of_scripts(project, pdm): project.pyproject.settings["scripts"] = { "test_composite": {"composite": ["test_cmd", "test_script", "test_shell"]}, "test_cmd": "flask db upgrade", "test_multi": """\ I am a multilines command """, "test_script": {"call": "test_script:main", "help": "call a python function"}, "test_shell": {"shell": "echo $FOO", "help": "shell command"}, } project.pyproject.write() result = pdm(["run", "--list"], obj=project) result_lines = result.output.splitlines()[3:] > assert result_lines[0][1:-1].strip() == "test_cmd │ cmd │ flask db upgrade" E IndexError: list index out of range tests/cli/test_run.py:414: IndexError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _________________ test_run_show_list_of_scripts_hide_internals _________________ project = pdm = .caller at 0x7fc7cefb7a60> def test_run_show_list_of_scripts_hide_internals(project, pdm): project.pyproject.settings["scripts"] = { "public": "true", "_internal": "true", } project.pyproject.write() result = pdm(["run", "--list"], obj=project) > assert "public" in result.output E AssertionError: assert 'public' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output tests/cli/test_run.py:429: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ________________________ test_run_json_list_of_scripts _________________________ project = pdm = .caller at 0x7fc7cefe1620> def test_run_json_list_of_scripts(project, pdm): project.pyproject.settings["scripts"] = { "_": {"env_file": ".env"}, "test_composite": {"composite": ["test_cmd", "test_script", "test_shell"]}, "test_cmd": "flask db upgrade", "test_multi": """\ I am a multilines command """, "test_script": {"call": "test_script:main", "help": "call a python function"}, "test_shell": {"shell": "echo $FOO", "help": "shell command"}, "test_env": {"cmd": "true", "env": {"TEST": "value"}}, "test_env_file": {"cmd": "true", "env_file": ".env"}, "test_override": {"cmd": "true", "env_file": {"override": ".env"}}, "test_site_packages": {"cmd": "true", "site_packages": True}, "_private": "true", } project.pyproject.write() > result = pdm(["run", "--json"], obj=project, strict=True) tests/cli/test_run.py:451: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '--json'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ___________________ test_run_with_another_project_root[True] ___________________ project = pdm = .caller at 0x7fc7cef439c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cefd2780> explicit_python = True @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("explicit_python", [True, False]) def test_run_with_another_project_root(project, pdm, capfd, explicit_python): project.pyproject.metadata["requires-python"] = ">=3.6" project.pyproject.write() pdm(["add", "first"], obj=project) with TemporaryDirectory(prefix="pytest-run-") as tmp_dir: Path(tmp_dir).joinpath("main.py").write_text("import first;print(first.first([0, False, 1, 2]))\n") capfd.readouterr() with cd(tmp_dir): args = ["run", "-p", str(project.root), "main.py"] if explicit_python: args.insert(len(args) - 1, "python") ret = pdm(args) out, err = capfd.readouterr() > assert ret.exit_code == 0, err E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:516: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_run_with_another_project_root[False] ___________________ project = pdm = .caller at 0x7fc7cef31940> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ceb92ae0> explicit_python = False @pytest.mark.usefixtures("local_finder") @pytest.mark.parametrize("explicit_python", [True, False]) def test_run_with_another_project_root(project, pdm, capfd, explicit_python): project.pyproject.metadata["requires-python"] = ">=3.6" project.pyproject.write() pdm(["add", "first"], obj=project) with TemporaryDirectory(prefix="pytest-run-") as tmp_dir: Path(tmp_dir).joinpath("main.py").write_text("import first;print(first.first([0, False, 1, 2]))\n") capfd.readouterr() with cd(tmp_dir): args = ["run", "-p", str(project.root), "main.py"] if explicit_python: args.insert(len(args) - 1, "python") ret = pdm(args) out, err = capfd.readouterr() > assert ret.exit_code == 0, err E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:516: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_import_another_sitecustomize _______________________ project = pdm = .caller at 0x7fc7cebc7880> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cebb6660> def test_import_another_sitecustomize(project, pdm, capfd): project.pyproject.metadata["requires-python"] = ">=2.7" project.pyproject.write() # a script for checking another sitecustomize is imported project.root.joinpath("foo.py").write_text("import os;print(os.getenv('FOO'))") # ensure there have at least one sitecustomize can be imported # there may have more than one sitecustomize.py in sys.path project.root.joinpath("sitecustomize.py").write_text("import os;os.environ['FOO'] = 'foo'") env = os.environ.copy() paths = env.get("PYTHONPATH") this_path = str(project.root) new_paths = [this_path] if not paths else [this_path, paths] env["PYTHONPATH"] = os.pathsep.join(new_paths) project._environment = None capfd.readouterr() with cd(project.root): result = pdm(["run", "python", "foo.py"], env=env) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:537: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_run_with_patched_sysconfig ________________________ project = pdm = .caller at 0x7fc7ceb7d9e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ceb17f20> def test_run_with_patched_sysconfig(project, pdm, capfd): project.root.joinpath("script.py").write_text( """\ import sysconfig import json print(json.dumps(sysconfig.get_paths())) """ ) capfd.readouterr() with cd(project.root): result = pdm(["run", "python", "script.py"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:553: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________________ test_run_composite ______________________________ project = pdm = .caller at 0x7fc7cebff600> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ceb27c50>, _echo = None def test_run_composite(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "first": "python echo.py First", "second": "python echo.py Second", "test": {"composite": ["first", "second"]}, } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:566: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________ test_composite_stops_on_first_failure _____________________ project = pdm = .caller at 0x7fc7ce5d14e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce5b9880> def test_composite_stops_on_first_failure(project, pdm, capfd): project.pyproject.settings["scripts"] = { "first": {"cmd": ["python", "-c", "print('First CALLED')"]}, "fail": "python -c 'raise Exception'", "second": "echo 'Second CALLED'", "test": {"composite": ["first", "fail", "second"]}, } project.pyproject.write() capfd.readouterr() result = pdm(["run", "test"], obj=project) assert result.exit_code == 1 out, _ = capfd.readouterr() > assert "First CALLED" in out E AssertionError: assert 'First CALLED' in '' tests/cli/test_run.py:584: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_composite_inherit_env __________________________ project = pdm = .caller at 0x7fc7ce50b560> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ceb17fb0>, _echo = None def test_composite_inherit_env(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "first": { "cmd": "python echo.py First VAR", "env": {"VAR": "42"}, }, "second": { "cmd": "python echo.py Second VAR", "env": {"VAR": "42"}, }, "test": {"composite": ["first", "second"], "env": {"VAR": "overriden"}}, } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:602: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________ test_composite_fail_on_first_missing_task ___________________ project = pdm = .caller at 0x7fc7ce5696c0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce59b9e0>, _echo = None def test_composite_fail_on_first_missing_task(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "first": "python echo.py First", "second": "python echo.py Second", "test": {"composite": ["first", "fail", "second"]}, } project.pyproject.write() capfd.readouterr() result = pdm(["run", "test"], obj=project) assert result.exit_code == 1 out, _ = capfd.readouterr() > assert "First CALLED" in out E AssertionError: assert 'First CALLED' in '' tests/cli/test_run.py:619: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_composite_runs_all_hooks _________________________ project = pdm = .caller at 0x7fc7ce569300> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce59cd10>, _echo = None def test_composite_runs_all_hooks(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python echo.py Pre-Test", "post_test": "python echo.py Post-Test", "first": "python echo.py First", "pre_first": "python echo.py Pre-First", "second": "python echo.py Second", "post_second": "python echo.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:635: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________ test_composite_pass_parameters_to_subtasks __________________ project = pdm = .caller at 0x7fc7cf219300> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cebb6d80>, _args = None def test_composite_pass_parameters_to_subtasks(project, pdm, capfd, _args): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second"]}, "pre_test": "python args.py Pre-Test", "post_test": "python args.py Post-Test", "first": "python args.py First", "pre_first": "python args.py Pre-First", "second": "python args.py Second", "post_second": "python args.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "test", "param=value"], strict=True, obj=project) tests/cli/test_run.py:657: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test', 'param=value'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_composite_can_pass_parameters ______________________ project = pdm = .caller at 0x7fc7ce587b00> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf281e80>, _args = None def test_composite_can_pass_parameters(project, pdm, capfd, _args): project.pyproject.settings["scripts"] = { "test": {"composite": ["first param=first", "second param=second"]}, "pre_test": "python args.py Pre-Test", "post_test": "python args.py Post-Test", "first": "python args.py First", "pre_first": "python args.py Pre-First", "second": "python args.py Second", "post_second": "python args.py Post-Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:679: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____ test_composite_only_pass_parameters_to_subtasks_with_args[with-args] _____ project = pdm = .caller at 0x7fc7ceacd9e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cf55ede0>, _args = None args = ['-a'], expected = '-a, ' @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a"], "-a, ", id="with-args"), pytest.param([], "", id="without-args"), ), ) def test_composite_only_pass_parameters_to_subtasks_with_args(project, pdm, capfd, _args, args, expected): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second {args} key=value"]}, "first": "python args.py First", "second": "python args.py Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "-v", "test", *args], strict=True, obj=project) tests/cli/test_run.py:704: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-v', 'test', '-a'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___ test_composite_only_pass_parameters_to_subtasks_with_args[without-args] ____ project = pdm = .caller at 0x7fc7cea83a60> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce5398e0>, _args = None args = [], expected = '' @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a"], "-a, ", id="with-args"), pytest.param([], "", id="without-args"), ), ) def test_composite_only_pass_parameters_to_subtasks_with_args(project, pdm, capfd, _args, args, expected): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second {args} key=value"]}, "first": "python args.py First", "second": "python args.py Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "-v", "test", *args], strict=True, obj=project) tests/cli/test_run.py:704: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-v', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _ test_composite_only_pass_parameters_to_subtasks_with_args_with_default[with-args] _ project = pdm = .caller at 0x7fc7ceae99e0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cea9aff0>, _args = None args = ['-a'], expected = '-a' @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a"], "-a", id="with-args"), pytest.param([], "--default", id="default"), ), ) def test_composite_only_pass_parameters_to_subtasks_with_args_with_default(project, pdm, capfd, _args, args, expected): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second {args:--default} key=value"]}, "first": "python args.py First", "second": "python args.py Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "-v", "test", *args], strict=True, obj=project) tests/cli/test_run.py:725: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-v', 'test', '-a'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _ test_composite_only_pass_parameters_to_subtasks_with_args_with_default[default] _ project = pdm = .caller at 0x7fc7ceaefa60> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cea7eff0>, _args = None args = [], expected = '--default' @pytest.mark.parametrize( "args,expected", ( pytest.param(["-a"], "-a", id="with-args"), pytest.param([], "--default", id="default"), ), ) def test_composite_only_pass_parameters_to_subtasks_with_args_with_default(project, pdm, capfd, _args, args, expected): project.pyproject.settings["scripts"] = { "test": {"composite": ["first", "second {args:--default} key=value"]}, "first": "python args.py First", "second": "python args.py Second", } project.pyproject.write() capfd.readouterr() > pdm(["run", "-v", "test", *args], strict=True, obj=project) tests/cli/test_run.py:725: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-v', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_composite_hooks_inherit_env _______________________ project = pdm = .caller at 0x7fc7ceaef6a0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce6d0f50>, _echo = None def test_composite_hooks_inherit_env(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "pre_task": {"cmd": "python echo.py Pre-Task VAR", "env": {"VAR": "42"}}, "task": "python echo.py Task", "post_task": {"cmd": "python echo.py Post-Task VAR", "env": {"VAR": "42"}}, "test": {"composite": ["task"], "env": {"VAR": "overriden"}}, } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:740: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________ test_composite_inherit_env_in_cascade _____________________ project = pdm = .caller at 0x7fc7ce6b7420> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce612000>, _echo = None def test_composite_inherit_env_in_cascade(project, pdm, capfd, _echo): project.pyproject.settings["scripts"] = { "_": {"env": {"FOO": "BAR", "TIK": "TOK"}}, "pre_task": { "cmd": "python echo.py Pre-Task VAR FOO TIK", "env": {"VAR": "42", "FOO": "foobar"}, }, "task": { "cmd": "python echo.py Task VAR FOO TIK", "env": {"VAR": "42", "FOO": "foobar"}, }, "post_task": { "cmd": "python echo.py Post-Task VAR FOO TIK", "env": {"VAR": "42", "FOO": "foobar"}, }, "test": {"composite": ["task"], "env": {"VAR": "overriden"}}, } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:766: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_composite_inherit_dotfile ________________________ project = pdm = .caller at 0x7fc7ce6e9a80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7cea7e3c0>, _echo = None def test_composite_inherit_dotfile(project, pdm, capfd, _echo): (project.root / ".env").write_text("VAR=42") (project.root / "override.env").write_text("VAR=overriden") project.pyproject.settings["scripts"] = { "pre_task": {"cmd": "python echo.py Pre-Task VAR", "env_file": ".env"}, "task": {"cmd": "python echo.py Task VAR", "env_file": ".env"}, "post_task": {"cmd": "python echo.py Post-Task VAR", "env_file": ".env"}, "test": {"composite": ["task"], "env_file": "override.env"}, } project.pyproject.write() capfd.readouterr() > pdm(["run", "test"], strict=True, obj=project) tests/cli/test_run.py:784: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_composite_can_have_commands _______________________ project = pdm = .caller at 0x7fc7ce777d80> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce78b590> def test_composite_can_have_commands(project, pdm, capfd): project.pyproject.settings["scripts"] = { "task": {"cmd": ["python", "-c", 'print("Task CALLED")']}, "test": {"composite": ["task", "python -c 'print(\"Command CALLED\")'"]}, } project.pyproject.write() capfd.readouterr() > pdm(["run", "-v", "test"], strict=True, obj=project) tests/cli/test_run.py:798: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['run', '-v', 'test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________________ test_run_shortcut _______________________________ project = pdm = .caller at 0x7fc7ce75dd00> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce734740> def test_run_shortcut(project, pdm, capfd): project.pyproject.settings["scripts"] = { "test": "echo 'Everything is fine'", } project.pyproject.write() capfd.readouterr() > result = pdm(["test"], obj=project, strict=True) tests/cli/test_run.py:810: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['test'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________ test_run_shortcuts_dont_override_commands ___________________ project = pdm = .caller at 0x7fc7ce77fba0> capfd = <_pytest.capture.CaptureFixture object at 0x7fc7ce7ea0c0> mocker = def test_run_shortcuts_dont_override_commands(project, pdm, capfd, mocker): do_lock = mocker.patch.object(actions, "do_lock") do_sync = mocker.patch.object(actions, "do_sync") project.pyproject.settings["scripts"] = { "install": "echo 'Should not run'", } project.pyproject.write() capfd.readouterr() > result = pdm(["install"], obj=project, strict=True) tests/cli/test_run.py:824: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________ test_run_shortcut_fail_with_usage_if_script_not_found _____________ project = pdm = .caller at 0x7fc7ce9260c0> def test_run_shortcut_fail_with_usage_if_script_not_found(project, pdm): result = pdm(["whatever"], obj=project) assert result.exit_code != 0 > assert "Script unknown: whatever" in result.stderr E AssertionError: assert 'Script unknown: whatever' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_run.py:835: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________ test_empty_positionnal_args_still_display_usage[unknown param] ________ project = pdm = .caller at 0x7fc7ce91bd80>, args = ['-ko'] @pytest.mark.parametrize( "args", [ pytest.param(["-ko"], id="unknown param"), pytest.param(["pip", "--version"], id="not an user script"), ], ) def test_empty_positionnal_args_still_display_usage(project, pdm, args): result = pdm(args, obj=project) assert result.exit_code != 0 > assert "Usage" in result.stderr E AssertionError: assert 'Usage' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_run.py:849: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____ test_empty_positionnal_args_still_display_usage[not an user script] ______ project = pdm = .caller at 0x7fc7ce979a80> args = ['pip', '--version'] @pytest.mark.parametrize( "args", [ pytest.param(["-ko"], id="unknown param"), pytest.param(["pip", "--version"], id="not an user script"), ], ) def test_empty_positionnal_args_still_display_usage(project, pdm, args): result = pdm(args, obj=project) assert result.exit_code != 0 > assert "Usage" in result.stderr E AssertionError: assert 'Usage' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_run.py:849: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________ test_empty_positional_args_display_help ____________________ project = pdm = .caller at 0x7fc7ce99b380> def test_empty_positional_args_display_help(project, pdm): result = pdm([], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_run.py:854: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________________ test_self_list ________________________________ pdm = .caller at 0x7fc7ce3ac9a0> @pytest.mark.usefixtures("mock_all_distributions") def test_self_list(pdm): result = pdm(["self", "list"]) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:42: AssertionError ____________________________ test_self_list_plugins ____________________________ pdm = .caller at 0x7fc7ce310ea0> @pytest.mark.usefixtures("mock_all_distributions") def test_self_list_plugins(pdm): result = pdm(["self", "list", "--plugins"]) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:50: AssertionError ________________________________ test_self_add _________________________________ pdm = .caller at 0x7fc7ce38a660> mock_pip = def test_self_add(pdm, mock_pip): result = pdm(["self", "add", "foo"]) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:57: AssertionError _______________________________ test_self_remove _______________________________ pdm = .caller at 0x7fc7ce34ff60> mock_pip = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7ce1b6390> def test_self_remove(pdm, mock_pip, monkeypatch): def _mock_resolve(self, packages): return ["demo", "pytz"] if "demo" in packages else packages monkeypatch.setattr( self_cmd.RemoveCommand, "_resolve_dependencies_to_remove", _mock_resolve, ) result = pdm(["self", "remove", "foo"]) assert result.exit_code != 0 result = pdm(["self", "remove", "-y", "demo"]) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:79: AssertionError ______________________ test_self_update[args0-expected0] _______________________ pdm = .caller at 0x7fc7ce3ed940> mock_pip = mock_latest_pdm_version = args = ['self', 'update'], expected = ['install', '--upgrade', 'pdm==99.0.0'] @pytest.mark.parametrize( "args,expected", [ (["self", "update"], ["install", "--upgrade", "pdm==99.0.0"]), (["self", "update", "--pre"], ["install", "--upgrade", "pdm==99.0.1b1"]), ( ["self", "update", "--head"], ["install", "--upgrade", f"pdm @ git+{self_cmd.PDM_REPO}@main"], ), ], ) def test_self_update(pdm, mock_pip, mock_latest_pdm_version, args, expected): def mocked_latest_version(project, pre): return "99.0.1b1" if pre else "99.0.0" mock_latest_pdm_version.side_effect = mocked_latest_version result = pdm(args) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:101: AssertionError ______________________ test_self_update[args1-expected1] _______________________ pdm = .caller at 0x7fc7ce2d3380> mock_pip = mock_latest_pdm_version = args = ['self', 'update', '--pre'] expected = ['install', '--upgrade', 'pdm==99.0.1b1'] @pytest.mark.parametrize( "args,expected", [ (["self", "update"], ["install", "--upgrade", "pdm==99.0.0"]), (["self", "update", "--pre"], ["install", "--upgrade", "pdm==99.0.1b1"]), ( ["self", "update", "--head"], ["install", "--upgrade", f"pdm @ git+{self_cmd.PDM_REPO}@main"], ), ], ) def test_self_update(pdm, mock_pip, mock_latest_pdm_version, args, expected): def mocked_latest_version(project, pre): return "99.0.1b1" if pre else "99.0.0" mock_latest_pdm_version.side_effect = mocked_latest_version result = pdm(args) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:101: AssertionError ______________________ test_self_update[args2-expected2] _______________________ pdm = .caller at 0x7fc7ce104e00> mock_pip = mock_latest_pdm_version = args = ['self', 'update', '--head'] expected = ['install', '--upgrade', 'pdm @ git+https://github.com/pdm-project/pdm@main'] @pytest.mark.parametrize( "args,expected", [ (["self", "update"], ["install", "--upgrade", "pdm==99.0.0"]), (["self", "update", "--pre"], ["install", "--upgrade", "pdm==99.0.1b1"]), ( ["self", "update", "--head"], ["install", "--upgrade", f"pdm @ git+{self_cmd.PDM_REPO}@main"], ), ], ) def test_self_update(pdm, mock_pip, mock_latest_pdm_version, args, expected): def mocked_latest_version(project, pre): return "99.0.1b1" if pre else "99.0.0" mock_latest_pdm_version.side_effect = mocked_latest_version result = pdm(args) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:101: AssertionError _______________________ test_self_update_already_latest ________________________ pdm = .caller at 0x7fc7ce182840> mock_pip = mock_latest_pdm_version = def test_self_update_already_latest(pdm, mock_pip, mock_latest_pdm_version): mock_latest_pdm_version.return_value = "0.0.0" result = pdm(["self", "update"]) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_self_command.py:109: AssertionError ________________________ test_update_packages_with_top _________________________ project = pdm = .caller at 0x7fc7ce4efce0> @pytest.mark.usefixtures("working_set") def test_update_packages_with_top(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_update.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________________ test_update_command ______________________________ project = pdm = .caller at 0x7fc7ce4cfba0> mocker = def test_update_command(project, pdm, mocker): do_update = mocker.patch("pdm.cli.commands.update.Command.do_update") pdm(["update"], obj=project) > do_update.assert_called_once() tests/cli/test_update.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'do_update' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_update_ignore_constraints ________________________ project = repository = pdm = .caller at 0x7fc7ce85a520> @pytest.mark.usefixtures("working_set") def test_update_ignore_constraints(project, repository, pdm): project.project_config["strategy.save"] = "compatible" > pdm(["add", "pytz"], obj=project, strict=True) tests/cli/test_update.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_update_all_packages[reuse] ________________________ project = repository = pdm = .caller at 0x7fc7ce0e8720>, strategy = 'reuse' @pytest.mark.usefixtures("working_set") @pytest.mark.parametrize("strategy", ["reuse", "all"]) def test_update_all_packages(project, repository, pdm, strategy): > pdm(["add", "requests", "pytz"], obj=project, strict=True) tests/cli/test_update.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_update_all_packages[all] _________________________ project = repository = pdm = .caller at 0x7fc7ce0ae3e0>, strategy = 'all' @pytest.mark.usefixtures("working_set") @pytest.mark.parametrize("strategy", ["reuse", "all"]) def test_update_all_packages(project, repository, pdm, strategy): > pdm(["add", "requests", "pytz"], obj=project, strict=True) tests/cli/test_update.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________________ test_update_no_lock ______________________________ project = working_set = repository = pdm = .caller at 0x7fc7ce0a05e0> def test_update_no_lock(project, working_set, repository, pdm): > pdm(["add", "pytz"], obj=project, strict=True) tests/cli/test_update.py:65: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________________ test_update_dry_run ______________________________ project = repository = pdm = .caller at 0x7fc7ce006340> @pytest.mark.usefixtures("working_set") def test_update_dry_run(project, repository, pdm): > pdm(["add", "requests", "pytz"], obj=project, strict=True) tests/cli/test_update.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_update_top_packages_dry_run _______________________ project = repository = pdm = .caller at 0x7fc7cdf38540> @pytest.mark.usefixtures("working_set") def test_update_top_packages_dry_run(project, repository, pdm): > pdm(["add", "requests", "pytz"], obj=project, strict=True) tests/cli/test_update.py:100: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_update_specified_packages ________________________ project = repository = pdm = .caller at 0x7fc7cdf2e200> @pytest.mark.usefixtures("working_set") def test_update_specified_packages(project, repository, pdm): > pdm(["add", "requests", "pytz", "--no-sync"], obj=project, strict=True) tests/cli/test_update.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz', '--no-sync'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. __________________ test_update_specified_packages_eager_mode ___________________ project = repository = pdm = .caller at 0x7fc7cdf78400> @pytest.mark.usefixtures("working_set") def test_update_specified_packages_eager_mode(project, repository, pdm): > pdm(["add", "requests", "pytz", "--no-sync"], obj=project, strict=True) tests/cli/test_update.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz', '--no-sync'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________ test_update_specified_packages_eager_mode_config _______________ project = repository = pdm = .caller at 0x7fc7cdc4e200> @pytest.mark.usefixtures("working_set") def test_update_specified_packages_eager_mode_config(project, repository, pdm): > pdm(["add", "requests", "pytz", "--no-sync"], obj=project, strict=True) tests/cli/test_update.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests', 'pytz', '--no-sync'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_update_with_package_and_groups_argument _________________ project = pdm = .caller at 0x7fc7cdcd4400> @pytest.mark.usefixtures("working_set") def test_update_with_package_and_groups_argument(project, pdm): > pdm(["add", "-G", "web", "requests"], obj=project, strict=True) tests/cli/test_update.py:190: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '-G', 'web', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________ test_update_with_prerelease_without_package_argument _____________ project = pdm = .caller at 0x7fc7cdc260c0> @pytest.mark.usefixtures("working_set") def test_update_with_prerelease_without_package_argument(project, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_update.py:201: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_update_existing_package_with_prerelease _________________ project = working_set = pdm = .caller at 0x7fc7ce8ad120> def test_update_existing_package_with_prerelease(project, working_set, pdm): project.project_config["strategy.save"] = "compatible" > pdm(["add", "urllib3"], obj=project, strict=True) tests/cli/test_update.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'urllib3'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________ test_update_package_with_extras ________________________ project = repository = working_set = pdm = .caller at 0x7fc7cdc453a0> def test_update_package_with_extras(project, repository, working_set, pdm): repository.add_candidate("foo", "0.1") foo_deps = ["urllib3; extra == 'req'"] repository.add_dependencies("foo", "0.1", foo_deps) > pdm(["add", "foo[req]"], obj=project, strict=True) tests/cli/test_update.py:225: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'foo[req]'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________________ test_update_groups_in_lockfile ________________________ project = working_set = pdm = .caller at 0x7fc7cdcbbc40> repository = def test_update_groups_in_lockfile(project, working_set, pdm, repository): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_update.py:236: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_update_group_not_in_lockfile _______________________ project = working_set = pdm = .caller at 0x7fc7ce445a80> def test_update_group_not_in_lockfile(project, working_set, pdm): > pdm(["add", "requests"], obj=project, strict=True) tests/cli/test_update.py:247: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _______________________________ test_use_command _______________________________ project = pdm = .caller at 0x7fc7cdb972e0> def test_use_command(project, pdm): python = "python" if os.name == "nt" else "python3" python_path = shutil.which(python) result = pdm(["use", "-f", python], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_use.py:17: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_use_python_by_version __________________________ project = pdm = .caller at 0x7fc7cdb55120> def test_use_python_by_version(project, pdm): python_version = ".".join(map(str, sys.version_info[:2])) result = pdm(["use", "-f", python_version], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_use.py:31: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_use_venv_python _____________________________ project = pdm = .caller at 0x7fc7cdecb7e0> def test_use_venv_python(project, pdm): > pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_use.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_help_with_unknown_arguments _______________________ pdm = .caller at 0x7fc7cde69800> def test_help_with_unknown_arguments(pdm): result = pdm(["add", "--unknown-args"]) > assert "Usage: pdm add " in result.stderr E AssertionError: assert 'Usage: pdm add ' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_utils.py:3: AssertionError _______________________________ test_venv_create _______________________________ pdm = .caller at 0x7fc7cdb52d40> project = @pytest.mark.usefixtures("fake_create") def test_venv_create(pdm, project): project._saved_python = None project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:37: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_venv_create_in_project __________________________ pdm = .caller at 0x7fc7cdea0a40> project = @pytest.mark.usefixtures("fake_create") def test_venv_create_in_project(pdm, project): project.project_config["venv.in_project"] = True > pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_venv.py:46: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_venv_create_other_location ________________________ pdm = .caller at 0x7fc7cd8ee5c0> project = @pytest.mark.usefixtures("fake_create") def test_venv_create_other_location(pdm, project): > pdm(["venv", "-p", project.root.as_posix(), "create"], strict=True) tests/cli/test_venv.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', '-p', '/usr/src/tmp/pytest-of-builder/pytest-0/test_venv_create_other_locatio0', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_venv_show_path ______________________________ pdm = .caller at 0x7fc7cd8942c0> project = @pytest.mark.usefixtures("fake_create") def test_venv_show_path(pdm, project): project.project_config["venv.in_project"] = True > pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_venv.py:67: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________________ test_venv_list ________________________________ pdm = .caller at 0x7fc7cd80e020> project = @pytest.mark.usefixtures("fake_create") def test_venv_list(pdm, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:81: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________________ test_venv_remove _______________________________ pdm = .caller at 0x7fc7cd8ffce0> project = @pytest.mark.usefixtures("fake_create") def test_venv_remove(pdm, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:93: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________________ test_venv_recreate ______________________________ pdm = .caller at 0x7fc7cda09760> project = @pytest.mark.usefixtures("fake_create") def test_venv_recreate(pdm, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:110: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_venv_activate[virtualenv] ________________________ pdm = .caller at 0x7fc7cdaafba0> mocker = project = @pytest.mark.usefixtures("venv_backends") def test_venv_activate(pdm, mocker, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:123: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_venv_activate[venv] ___________________________ pdm = .caller at 0x7fc7cdaaf7e0> mocker = project = @pytest.mark.usefixtures("venv_backends") def test_venv_activate(pdm, mocker, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:123: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________ test_venv_activate_custom_prompt[virtualenv] _________________ pdm = .caller at 0x7fc7cd93b1a0> mocker = project = @pytest.mark.usefixtures("venv_backends") def test_venv_activate_custom_prompt(pdm, mocker, project): project.project_config["venv.in_project"] = False creator = mocker.patch("pdm.cli.commands.venv.backends.Backend.create") result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:144: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________ test_venv_activate_custom_prompt[venv] ____________________ pdm = .caller at 0x7fc7cd91c7c0> mocker = project = @pytest.mark.usefixtures("venv_backends") def test_venv_activate_custom_prompt(pdm, mocker, project): project.project_config["venv.in_project"] = False creator = mocker.patch("pdm.cli.commands.venv.backends.Backend.create") result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:144: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________ test_venv_activate_project_without_python ___________________ pdm = .caller at 0x7fc7cdd06200> project = def test_venv_activate_project_without_python(pdm, project): project._saved_python = None result = pdm(["venv", "activate"], obj=project) assert result.exit_code != 0 > assert "The project doesn't have a saved python.path" in result.stderr E assert "The project doesn't have a saved python.path" in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr tests/cli/test_venv.py:154: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_venv_activate_error ___________________________ pdm = .caller at 0x7fc7cddc3f60> project = @pytest.mark.usefixtures("fake_create") def test_venv_activate_error(pdm, project): project.project_config["venv.in_project"] = False > result = pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_venv.py:160: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['venv', 'create'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________ test_venv_activate_no_shell[virtualenv] ____________________ pdm = .caller at 0x7fc7cddba2a0> mocker = project = @pytest.mark.usefixtures("venv_backends") def test_venv_activate_no_shell(pdm, mocker, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:176: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_venv_activate_no_shell[venv] _______________________ pdm = .caller at 0x7fc7cdda37e0> mocker = project = @pytest.mark.usefixtures("venv_backends") def test_venv_activate_no_shell(pdm, mocker, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:176: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_venv_auto_create[False] _________________________ pdm = .caller at 0x7fc7cd6d67a0> mocker = project = keep_pypackages = False @pytest.mark.usefixtures("fake_create") @pytest.mark.parametrize("keep_pypackages", [True, False]) def test_venv_auto_create(pdm, mocker, project, keep_pypackages): creator = mocker.patch("pdm.cli.commands.venv.backends.Backend.create") project._saved_python = None if keep_pypackages: project.root.joinpath("__pypackages__").mkdir(exist_ok=True) else: shutil.rmtree(project.root / "__pypackages__", ignore_errors=True) project.project_config["python.use_venv"] = True pdm(["install"], obj=project) if keep_pypackages: creator.assert_not_called() else: > creator.assert_called_once() tests/cli/test_venv.py:206: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def assert_called_once(self): """assert that the mock was called only once. """ if not self.call_count == 1: msg = ("Expected '%s' to have been called once. Called %s times.%s" % (self._mock_name or 'mock', self.call_count, self._calls_repr())) > raise AssertionError(msg) E AssertionError: Expected 'create' to have been called once. Called 0 times. /usr/lib64/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________________ test_venv_purge ________________________________ pdm = .caller at 0x7fc7cd640540> project = @pytest.mark.usefixtures("fake_create") def test_venv_purge(pdm, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "purge"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:213: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________________ test_venv_purge_force _____________________________ pdm = .caller at 0x7fc7cd551e40> project = @pytest.mark.usefixtures("fake_create") def test_venv_purge_force(pdm, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:227: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________ test_venv_purge_interactive[virtualenv-none-True] _______________ pdm = .caller at 0x7fc7cd53fce0>, user_choices = 'none' is_path_exists = True project = @pytest.mark.usefixtures("venv_backends") @pytest.mark.parametrize("user_choices, is_path_exists", user_options) def test_venv_purge_interactive(pdm, user_choices, is_path_exists, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:242: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________ test_venv_purge_interactive[virtualenv-0-False] ________________ pdm = .caller at 0x7fc7cd5f9d00>, user_choices = '0' is_path_exists = False project = @pytest.mark.usefixtures("venv_backends") @pytest.mark.parametrize("user_choices, is_path_exists", user_options) def test_venv_purge_interactive(pdm, user_choices, is_path_exists, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:242: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________ test_venv_purge_interactive[virtualenv-all-False] _______________ pdm = .caller at 0x7fc7cd593240>, user_choices = 'all' is_path_exists = False project = @pytest.mark.usefixtures("venv_backends") @pytest.mark.parametrize("user_choices, is_path_exists", user_options) def test_venv_purge_interactive(pdm, user_choices, is_path_exists, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:242: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________ test_venv_purge_interactive[venv-none-True] __________________ pdm = .caller at 0x7fc7cd7ad440>, user_choices = 'none' is_path_exists = True project = @pytest.mark.usefixtures("venv_backends") @pytest.mark.parametrize("user_choices, is_path_exists", user_options) def test_venv_purge_interactive(pdm, user_choices, is_path_exists, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:242: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________ test_venv_purge_interactive[venv-0-False] ___________________ pdm = .caller at 0x7fc7cd7ba980>, user_choices = '0' is_path_exists = False project = @pytest.mark.usefixtures("venv_backends") @pytest.mark.parametrize("user_choices, is_path_exists", user_options) def test_venv_purge_interactive(pdm, user_choices, is_path_exists, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:242: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________ test_venv_purge_interactive[venv-all-False] __________________ pdm = .caller at 0x7fc7cd7c8680>, user_choices = 'all' is_path_exists = False project = @pytest.mark.usefixtures("venv_backends") @pytest.mark.parametrize("user_choices, is_path_exists", user_options) def test_venv_purge_interactive(pdm, user_choices, is_path_exists, project): project.project_config["venv.in_project"] = False result = pdm(["venv", "create"], obj=project) > assert result.exit_code == 0, result.stderr E AssertionError: E assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/cli/test_venv.py:242: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_project_backend[pdm-backend] _______________________ project = working_set = backend = 'pdm-backend', pdm = .caller at 0x7fc7cd7caca0> @pytest.mark.parametrize("backend", _BACKENDS.keys()) def test_project_backend(project, working_set, backend, pdm): _setup_backend(project, backend) shutil.copytree(FIXTURES / "projects/demo", project.root / "demo") project.root.joinpath("sub").mkdir() with cd(project.root.joinpath("sub")): > pdm(["add", "--no-self", "../demo"], obj=project, strict=True) tests/models/test_backends.py:35: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', '../demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _______________________ test_project_backend[setuptools] _______________________ project = working_set = backend = 'setuptools', pdm = .caller at 0x7fc7cd20f920> @pytest.mark.parametrize("backend", _BACKENDS.keys()) def test_project_backend(project, working_set, backend, pdm): _setup_backend(project, backend) shutil.copytree(FIXTURES / "projects/demo", project.root / "demo") project.root.joinpath("sub").mkdir() with cd(project.root.joinpath("sub")): > pdm(["add", "--no-self", "../demo"], obj=project, strict=True) tests/models/test_backends.py:35: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', '../demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _______________________ test_project_backend[flit-core] ________________________ project = working_set = backend = 'flit-core', pdm = .caller at 0x7fc7cd23dc60> @pytest.mark.parametrize("backend", _BACKENDS.keys()) def test_project_backend(project, working_set, backend, pdm): _setup_backend(project, backend) shutil.copytree(FIXTURES / "projects/demo", project.root / "demo") project.root.joinpath("sub").mkdir() with cd(project.root.joinpath("sub")): > pdm(["add", "--no-self", "../demo"], obj=project, strict=True) tests/models/test_backends.py:35: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', '../demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. _______________________ test_project_backend[hatchling] ________________________ project = working_set = backend = 'hatchling', pdm = .caller at 0x7fc7cd29f9c0> @pytest.mark.parametrize("backend", _BACKENDS.keys()) def test_project_backend(project, working_set, backend, pdm): _setup_backend(project, backend) shutil.copytree(FIXTURES / "projects/demo", project.root / "demo") project.root.joinpath("sub").mkdir() with cd(project.root.joinpath("sub")): > pdm(["add", "--no-self", "../demo"], obj=project, strict=True) tests/models/test_backends.py:35: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', '--no-self', '../demo'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ----------------------------- Captured stdout call ----------------------------- Changes are written to pyproject.toml. ____________________ test_install_wheel_with_cache[symlink] ____________________ project = pdm = .caller at 0x7fc7c7bd0cc0> supports_link = .mocked_support at 0x7fc7c7bd04a0> @pytest.mark.parametrize("preferred", ["symlink", "hardlink", None]) def test_install_wheel_with_cache(project, pdm, supports_link): req = parse_requirement("future-fstrings") candidate = Candidate( req, link=Link("http://fixtures.test/artifacts/future_fstrings-1.2.0-py2.py3-none-any.whl"), ) installer = InstallManager(project.environment, use_install_cache=True) installer.install(candidate) lib_path = project.environment.get_paths()["purelib"] if supports_link("symlink"): assert os.path.islink(os.path.join(lib_path, "future_fstrings.py")) assert os.path.islink(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) elif supports_link("link"): assert os.path.isfile(os.path.join(lib_path, "future_fstrings.py")) assert os.path.isfile(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) else: assert os.path.isfile(os.path.join(lib_path, "aaa_future_fstrings.pth")) assert os.path.isfile(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) cache_path = project.cache("packages") / "future_fstrings-1.2.0-py2.py3-none-any" assert cache_path.is_dir() pdm(["run", "python", "-m", "site"], object=project) r = pdm(["run", "python", "-c", "import future_fstrings"], obj=project) > assert r.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_installer.py:143: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log call ------------------------------- INFO unearth.preparer:preparer.py:341 Downloading (size unknown) INFO pdm.termui:installers.py:229 Installing wheel into cached location /usr/src/tmp/pytest-of-builder/pytest-0/test_install_wheel_with_cache_0/caches/packages/future_fstrings-1.2.0-py2.py3-none-any ___________________ test_install_wheel_with_cache[hardlink] ____________________ project = pdm = .caller at 0x7fc7c7b1e840> supports_link = .mocked_support at 0x7fc7c7b1df80> @pytest.mark.parametrize("preferred", ["symlink", "hardlink", None]) def test_install_wheel_with_cache(project, pdm, supports_link): req = parse_requirement("future-fstrings") candidate = Candidate( req, link=Link("http://fixtures.test/artifacts/future_fstrings-1.2.0-py2.py3-none-any.whl"), ) installer = InstallManager(project.environment, use_install_cache=True) installer.install(candidate) lib_path = project.environment.get_paths()["purelib"] if supports_link("symlink"): assert os.path.islink(os.path.join(lib_path, "future_fstrings.py")) assert os.path.islink(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) elif supports_link("link"): assert os.path.isfile(os.path.join(lib_path, "future_fstrings.py")) assert os.path.isfile(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) else: assert os.path.isfile(os.path.join(lib_path, "aaa_future_fstrings.pth")) assert os.path.isfile(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) cache_path = project.cache("packages") / "future_fstrings-1.2.0-py2.py3-none-any" assert cache_path.is_dir() pdm(["run", "python", "-m", "site"], object=project) r = pdm(["run", "python", "-c", "import future_fstrings"], obj=project) > assert r.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_installer.py:143: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log call ------------------------------- INFO unearth.preparer:preparer.py:341 Downloading (size unknown) INFO pdm.termui:installers.py:229 Installing wheel into cached location /usr/src/tmp/pytest-of-builder/pytest-0/test_install_wheel_with_cache_1/caches/packages/future_fstrings-1.2.0-py2.py3-none-any _____________________ test_install_wheel_with_cache[None] ______________________ project = pdm = .caller at 0x7fc7c7c0fb00> supports_link = .mocked_support at 0x7fc7c7c0f7e0> @pytest.mark.parametrize("preferred", ["symlink", "hardlink", None]) def test_install_wheel_with_cache(project, pdm, supports_link): req = parse_requirement("future-fstrings") candidate = Candidate( req, link=Link("http://fixtures.test/artifacts/future_fstrings-1.2.0-py2.py3-none-any.whl"), ) installer = InstallManager(project.environment, use_install_cache=True) installer.install(candidate) lib_path = project.environment.get_paths()["purelib"] if supports_link("symlink"): assert os.path.islink(os.path.join(lib_path, "future_fstrings.py")) assert os.path.islink(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) elif supports_link("link"): assert os.path.isfile(os.path.join(lib_path, "future_fstrings.py")) assert os.path.isfile(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) else: assert os.path.isfile(os.path.join(lib_path, "aaa_future_fstrings.pth")) assert os.path.isfile(os.path.join(lib_path, "aaaaa_future_fstrings.pth")) cache_path = project.cache("packages") / "future_fstrings-1.2.0-py2.py3-none-any" assert cache_path.is_dir() pdm(["run", "python", "-m", "site"], object=project) r = pdm(["run", "python", "-c", "import future_fstrings"], obj=project) > assert r.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_installer.py:143: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ------------------------------ Captured log call ------------------------------- INFO unearth.preparer:preparer.py:341 Downloading (size unknown) INFO pdm.termui:installers.py:229 Installing wheel into cached location /usr/src/tmp/pytest-of-builder/pytest-0/test_install_wheel_with_cache_2/caches/packages/future_fstrings-1.2.0-py2.py3-none-any ___________________________ test_actual_list_freeze ____________________________ project = local_finder = None, pdm = .caller at 0x7fc7c7d36340> def test_actual_list_freeze(project, local_finder, pdm): > pdm(["config", "-l", "install.parallel", "false"], obj=project, strict=True) tests/test_integration.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['config', '-l', 'install.parallel', 'false'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________________ test_plugin_new_command ____________________________ pdm = .caller at 0x7fc7c7ff2e80> mocker = project = core = def test_plugin_new_command(pdm, mocker, project, core): mocker.patch.object( importlib_metadata, "entry_points", return_value=[make_entry_point(new_command)], ) core.init_parser() core.load_plugins() result = pdm(["--help"], obj=project) > assert "hello" in result.output E AssertionError: assert 'hello' in '' E + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output tests/test_plugin.py:50: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_plugin_replace_command __________________________ pdm = .caller at 0x7fc7c7e244a0> mocker = project = core = def test_plugin_replace_command(pdm, mocker, project, core): mocker.patch.object( importlib_metadata, "entry_points", return_value=[make_entry_point(replace_command)], ) core.init_parser() core.load_plugins() result = pdm(["info"], obj=project) > assert result.output.strip() == "Hello world" E AssertionError: assert '' == 'Hello world' E E - Hello world tests/test_plugin.py:69: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_load_multiple_plugings __________________________ pdm = .caller at 0x7fc7cc05e660> mocker = core = def test_load_multiple_plugings(pdm, mocker, core): mocker.patch.object( importlib_metadata, "entry_points", return_value=[make_entry_point(new_command), make_entry_point(add_new_config)], ) core.init_parser() core.load_plugins() result = pdm(["hello"]) > assert result.output.strip() == "Hello world", result.outputs E AssertionError: E assert '' == 'Hello world' E E - Hello world tests/test_plugin.py:85: AssertionError ______________________ test_old_entry_point_compatibility ______________________ pdm = .caller at 0x7fc7c7d62ac0> mocker = core = def test_old_entry_point_compatibility(pdm, mocker, core): def get_entry_points(group): if group == "pdm": return [make_entry_point(new_command)] if group == "pdm.plugin": return [make_entry_point(add_new_config)] return [] mocker.patch.object(importlib_metadata, "entry_points", side_effect=get_entry_points) core.init_parser() core.load_plugins() result = pdm(["hello"]) > assert result.output.strip() == "Hello world" E AssertionError: assert '' == 'Hello world' E E - Hello world tests/test_plugin.py:104: AssertionError _________________________ test_project_plugin_library __________________________ pdm = .caller at 0x7fc7cc400180> project = core = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fc7cc446fc0> @pytest.mark.usefixtures("local_finder") def test_project_plugin_library(pdm, project, core, monkeypatch): monkeypatch.setattr(sys, "path", sys.path[:]) project.pyproject.settings["plugins"] = ["pdm-hello"] > pdm(["install", "--plugins"], obj=project, strict=True) tests/test_plugin.py:114: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['install', '--plugins'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________ test_create_venv_first_time[virtualenv] ____________________ pdm = .caller at 0x7fc7cc800680> project = local_finder = None @pytest.mark.usefixtures("venv_backends") def test_create_venv_first_time(pdm, project, local_finder): project.project_config.update({"venv.in_project": False}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:198: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_create_venv_first_time[venv] _______________________ pdm = .caller at 0x7fc7cc45e8e0> project = local_finder = None @pytest.mark.usefixtures("venv_backends") def test_create_venv_first_time(pdm, project, local_finder): project.project_config.update({"venv.in_project": False}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:198: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_create_venv_in_project[virtualenv-True] _________________ pdm = .caller at 0x7fc7cc8d9260> project = with_pip = True @pytest.mark.usefixtures("venv_backends", "local_finder") @pytest.mark.parametrize("with_pip", [True, False]) def test_create_venv_in_project(pdm, project, with_pip): project.project_config.update({"venv.in_project": True, "venv.with_pip": with_pip}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:212: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ________________ test_create_venv_in_project[virtualenv-False] _________________ pdm = .caller at 0x7fc7cc900360> project = with_pip = False @pytest.mark.usefixtures("venv_backends", "local_finder") @pytest.mark.parametrize("with_pip", [True, False]) def test_create_venv_in_project(pdm, project, with_pip): project.project_config.update({"venv.in_project": True, "venv.with_pip": with_pip}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:212: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_create_venv_in_project[venv-True] ____________________ pdm = .caller at 0x7fc7cc7854e0> project = with_pip = True @pytest.mark.usefixtures("venv_backends", "local_finder") @pytest.mark.parametrize("with_pip", [True, False]) def test_create_venv_in_project(pdm, project, with_pip): project.project_config.update({"venv.in_project": True, "venv.with_pip": with_pip}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:212: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ___________________ test_create_venv_in_project[venv-False] ____________________ pdm = .caller at 0x7fc7cca265c0> project = with_pip = False @pytest.mark.usefixtures("venv_backends", "local_finder") @pytest.mark.parametrize("with_pip", [True, False]) def test_create_venv_in_project(pdm, project, with_pip): project.project_config.update({"venv.in_project": True, "venv.with_pip": with_pip}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:212: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. _________________ test_find_interpreters_from_venv[virtualenv] _________________ pdm = .caller at 0x7fc7cc994180> project = local_finder = None @pytest.mark.usefixtures("venv_backends") def test_find_interpreters_from_venv(pdm, project, local_finder): project.project_config.update({"venv.in_project": False}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:223: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_find_interpreters_from_venv[venv] ____________________ pdm = .caller at 0x7fc7ccaadee0> project = local_finder = None @pytest.mark.usefixtures("venv_backends") def test_find_interpreters_from_venv(pdm, project, local_finder): project.project_config.update({"venv.in_project": False}) project._saved_python = None result = pdm(["install"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:223: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_quiet_mode[True-extra_args0] _______________________ pdm = .caller at 0x7fc7cce72ac0> project = is_quiet = True, extra_args = ('-q',), recwarn = WarningsRecorder(record=True) @pytest.mark.usefixtures("prepare_repository") @pytest.mark.parametrize("is_quiet,extra_args", [(True, ("-q",)), (False, ())]) def test_quiet_mode(pdm, project, is_quiet, extra_args, recwarn): result = pdm(["lock", *extra_args], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:351: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. ______________________ test_quiet_mode[False-extra_args1] ______________________ pdm = .caller at 0x7fc7cce73100> project = is_quiet = False, extra_args = (), recwarn = WarningsRecorder(record=True) @pytest.mark.usefixtures("prepare_repository") @pytest.mark.parametrize("is_quiet,extra_args", [(True, ("-q",)), (False, ())]) def test_quiet_mode(pdm, project, is_quiet, extra_args, recwarn): result = pdm(["lock", *extra_args], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:351: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_ignore_package_warning[foo-True] _____________________ pdm = .caller at 0x7fc7cd18e5c0> project = recwarn = WarningsRecorder(record=True), pattern = 'foo', suppressed = True @pytest.mark.usefixtures("prepare_repository") @pytest.mark.parametrize("pattern,suppressed", [("foo", True), ("bar", False), ("*", True), ("f?o", True)]) def test_ignore_package_warning(pdm, project, recwarn, pattern, suppressed): project.pyproject.settings["ignore_package_warnings"] = [pattern] result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:366: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_ignore_package_warning[bar-False] ____________________ pdm = .caller at 0x7fc7ccde54e0> project = recwarn = WarningsRecorder(record=True), pattern = 'bar', suppressed = False @pytest.mark.usefixtures("prepare_repository") @pytest.mark.parametrize("pattern,suppressed", [("foo", True), ("bar", False), ("*", True), ("f?o", True)]) def test_ignore_package_warning(pdm, project, recwarn, pattern, suppressed): project.pyproject.settings["ignore_package_warnings"] = [pattern] result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:366: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. _____________________ test_ignore_package_warning[*-True] ______________________ pdm = .caller at 0x7fc7cd093420> project = recwarn = WarningsRecorder(record=True), pattern = '*', suppressed = True @pytest.mark.usefixtures("prepare_repository") @pytest.mark.parametrize("pattern,suppressed", [("foo", True), ("bar", False), ("*", True), ("f?o", True)]) def test_ignore_package_warning(pdm, project, recwarn, pattern, suppressed): project.pyproject.settings["ignore_package_warnings"] = [pattern] result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:366: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________ test_ignore_package_warning[f?o-True] _____________________ pdm = .caller at 0x7fc7cd081620> project = recwarn = WarningsRecorder(record=True), pattern = 'f?o', suppressed = True @pytest.mark.usefixtures("prepare_repository") @pytest.mark.parametrize("pattern,suppressed", [("foo", True), ("bar", False), ("*", True), ("f?o", True)]) def test_ignore_package_warning(pdm, project, recwarn, pattern, suppressed): project.pyproject.settings["ignore_package_warnings"] = [pattern] result = pdm(["lock"], obj=project) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_project.py:366: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. Changes are written to pyproject.toml. ____________________________ test_post_init_signal _____________________________ project_no_init = pdm = .caller at 0x7fc7ccf12700> def test_post_init_signal(project_no_init, pdm): mock_handler = mock.Mock() with signals.post_init.connected_to(mock_handler): result = pdm(["init"], input="\n\n\n\n\n\n\n\n", obj=project_no_init) > assert result.exit_code == 0 E AssertionError: assert 1 == 0 E + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code tests/test_signals.py:12: AssertionError ______________________ test_post_lock_and_install_signals ______________________ project = pdm = .caller at 0x7fc7cd0098a0> @pytest.mark.usefixtures("working_set") def test_post_lock_and_install_signals(project, pdm): pre_lock = signals.pre_lock.connect(mock.Mock(), weak=False) post_lock = signals.post_lock.connect(mock.Mock(), weak=False) pre_install = signals.pre_install.connect(mock.Mock(), weak=False) post_install = signals.post_install.connect(mock.Mock(), weak=False) > pdm(["add", "requests"], obj=project, strict=True) tests/test_signals.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib64/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib64/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib64/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib64/python3.12/argparse.py:1914: in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = ErrorArgumentParser(prog='pdm', usage=None, description='\n ____ ____ __ ___\n / __ \\/ __ \\/ |/ /\n / /_/..._/ /_____/_/ /_/\n', formatter_class=, conflict_handler='error', add_help=False) args = ['add', 'requests'] namespace = Namespace(config=None, verbose=0, ignore_python=None, pep582=None) intermixed = False def _parse_known_args2(self, args, namespace, intermixed): if args is None: # args default to the system args args = _sys.argv[1:] else: # make sure that args are mutable args = list(args) # default Namespace built from parser defaults if namespace is None: namespace = Namespace() # add any action defaults that aren't present for action in self._actions: if action.dest is not SUPPRESS: if not hasattr(namespace, action.dest): if action.default is not SUPPRESS: setattr(namespace, action.dest, action.default) # add any parser defaults that aren't present for dest in self._defaults: if not hasattr(namespace, dest): setattr(namespace, dest, self._defaults[dest]) # parse the arguments and exit if there are any errors if self.exit_on_error: try: > namespace, args = self._parse_known_args(args, namespace, intermixed) E TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given /usr/lib64/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. Changes are written to pyproject.toml. =========================== short test summary info ============================ SKIPPED [1] tests/test_utils.py:181: Windows test XFAIL tests/models/test_candidates.py::test_parse_abnormal_specifiers - packaging 22 no longer supports legacy specifiers FAILED tests/cli/test_add.py::test_add_package[False] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package[True] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_no_lock[False] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_no_lock[True] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_command - AssertionError: Expected 'do_add' to have been called once. Called 0 times. FAILED tests/cli/test_add.py::test_add_package_to_custom_group - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_to_custom_dev_group - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_editable_package - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_editable_package_to_metadata_forbidden - AssertionError: assert 'PdmUsageError' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_add.py::test_non_editable_override_editable - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_remote_package_url[False] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_remote_package_url[True] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_no_install - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_save_exact - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_save_wildcard - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_save_minimum - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_update_reuse - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_update_eager - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_with_mismatch_marker - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_dependency_from_multiple_parents - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_packages_without_self - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_unconstrained_rewrite_specifier - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_cached_vcs_requirement - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_with_dry_run - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_with_prerelease - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_editable_package_with_extras - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_package_with_local_version - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_group_to_lockfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_group_to_lockfile_without_package - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_update_reuse_installed - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_add.py::test_add_update_reuse_installed_config - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_build.py::test_build_command - AssertionError: Expected 'do_build' to have been called once. Called 0 times. FAILED tests/cli/test_build.py::test_cli_build_with_config_settings - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_build.py::test_build_with_no_isolation[False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code + and 0 = int(False) FAILED tests/cli/test_cache.py::test_cache_list - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_cache.py::test_cache_list_pattern - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_cache.py::test_cache_remove_pattern - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_cache.py::test_cache_remove_wildcard - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_cache.py::test_cache_clear - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_cache.py::test_cache_info - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_cache.py::test_clear_package_cache - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_config.py::test_config_command - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_config.py::test_config_get_command - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_config.py::test_config_set_command - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_config.py::test_config_del_command - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_config.py::test_config_env_var_shadowing - AssertionError: assert '' == 'https://example.org/simple' - https://example.org/simple FAILED tests/cli/test_config.py::test_config_project_global_precedence - AssertionError: assert '' == 'False' - False FAILED tests/cli/test_config.py::test_specify_config_file - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_config.py::test_hide_password_in_output_repository - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_config.py::test_hide_password_in_output_pypi - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_config.py::test_config_get_repository - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_fix.py::test_fix_individual_problem - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_fix.py::test_show_fix_command - AssertionError: assert 'Run pdm fix to fix all' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_fix.py::test_show_fix_command_global_project - AssertionError: assert 'Run pdm fix -g to fix all' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_fix.py::test_fix_project_config - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_pre_script_fail_fast - AssertionError: assert 'PRE INSTALL CALLED' in 'Changes are written to pyproject.toml.\n' FAILED tests/cli/test_hooks.py::test_pre_and_post_scripts - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_composite_runs_all_hooks - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_hooks_option[:all] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_hooks_option[:pre,:post] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option[--skip pre_test,post_first,second] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option[-k pre_test,post_first,second] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option[--skip pre_test --skip post_first --skip second] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option[-k pre_test -k post_first -k second] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option[--skip pre_test --skip post_first,second] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option[-k pre_test -k post_first,second] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[add] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[init] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[remove] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[sync] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[update] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_hooks[use] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[add-pre_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[add-post_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[build-pre_build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[build-post_build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[init-post_init] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[install-pre_install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[install-post_install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[install-pre_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[install-post_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[lock-pre_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[lock-post_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[remove-pre_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[remove-post_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[sync-pre_install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[sync-post_install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[update-pre_install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[update-post_install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[update-pre_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[update-post_lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_option_from_signal[use-post_use] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-add] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-init] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-remove] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-sync] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-update] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-use] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-add] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-init] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-remove] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-sync] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-update] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-use] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-add] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-init] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-remove] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-sync] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-update] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-use] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-add] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-build] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-init] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-install] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-lock] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-publish] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-remove] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-sync] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-update] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-use] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_init.py::test_init_validate_python_requires - AssertionError: assert 'InvalidSpecifier' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_init.py::test_init_command - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_init.py::test_init_command_library - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_init.py::test_init_non_interactive - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_init.py::test_init_auto_create_venv - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_init.py::test_init_auto_create_venv_specify_python - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_init.py::test_init_auto_create_venv_answer_no - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_init.py::test_init_with_backend_default_library - AssertionError: assert 'PDMBackend' == 'FlitBackend' - FlitBackend + PDMBackend FAILED tests/cli/test_init.py::test_init_with_backend_default_library_non_interactive - AssertionError: assert 'PDMBackend' == 'FlitBackend' - FlitBackend + PDMBackend FAILED tests/cli/test_install.py::test_sync_packages_with_group_all - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_packages_with_all_dev - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_clean_packages - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_dry_run - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_only_different - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_in_sequential_mode - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_packages_with_groups - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_production_packages[prod_option0] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_production_packages[prod_option1] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_without_self - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_sync_with_index_change - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_command - AssertionError: Expected 'do_lock' to have been called once. Called 0 times. FAILED tests/cli/test_install.py::test_sync_command - AssertionError: Expected 'do_sync' to have been called once. Called 0 times. FAILED tests/cli/test_install.py::test_install_with_lockfile - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_install.py::test_install_with_dry_run - AssertionError: assert 'pytz 2019.3' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output FAILED tests/cli/test_install.py::test_install_no_lock - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_install.py::test_sync_with_only_keep_option - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_referencing_self_package - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_monorepo_with_rel_paths - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_retry - AssertionError: 'install_candidate' does not contain all of (call('certifi', ), call('chardet', ), call('certifi', ), call('chardet', )) in its call list, found [] instead FAILED tests/cli/test_install.py::test_install_fail_fast - AssertionError: 'install_candidate' does not contain all of (call('certifi', ), call('chardet', )) in its call list, found [] instead FAILED tests/cli/test_install.py::test_install_groups_not_in_lockfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_locked_groups - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_groups_and_lock - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_install.py::test_install_requirement_with_extras - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_command - AssertionError: Expected 'handle_list' to have been called once. Called 0 times. FAILED tests/cli/test_list.py::test_list_graph_command - AssertionError: Expected 'handle_graph' to have been called once. Called 0 times. FAILED tests/cli/test_list.py::test_list_dependency_graph - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_dependency_graph_include_exclude - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_dependency_graph_with_circular_forward - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_dependency_graph_with_circular_reverse - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_reverse_without_graph_flag - AssertionError: assert '[PdmUsageError]' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_list.py::test_list_reverse_dependency_graph - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_json - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_json_with_pattern - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_json_reverse - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_reverse_json_with_pattern - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_json_with_circular_forward - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_json_with_circular_reverse - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_field_unknown - AssertionError: assert '[PdmUsageError]' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_list.py::test_list_sort_unknown - AssertionError: assert '[PdmUsageError]' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_list.py::test_list_freeze_banned_options - AssertionError: assert '--tree cannot be used with --freeze' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).outputs FAILED tests/cli/test_list.py::test_list_multiple_export_formats - AssertionError: assert '--markdown: not allowed with argument --csv' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).outputs FAILED tests/cli/test_list.py::test_list_bare - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_bare_sorted_name - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_with_pattern - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_freeze - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_bare_sorted_version - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_bare_sorted_version_resolve - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_bare_fields_licences - AssertionError: assert '+-----------...----------+\n' == '' + +---------------------------------------------------------+ + | name | version | groups | licenses | + |------------+---------+--------+-------------------------| + | bar | 3.0.1 | :sub | B License | + | baz | 2.7 | :sub | C License | + | classifier | 1.0 | :sub | PDM TEST D | + | foo | 0.1.0 | :sub | A License | + | unknown | 1.0 | :sub | Apache Software License | + +---------------------------------------------------------+ FAILED tests/cli/test_list.py::test_list_csv_fields_licences - AssertionError: assert 'name,version...are License\n' == '' + name,version,licenses + bar,3.0.1,B License + baz,2.7,C License + classifier,1.0,PDM TEST D + foo,0.1.0,A License + unknown,1.0,Apache Software License FAILED tests/cli/test_list.py::test_list_json_fields_licences - json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) FAILED tests/cli/test_list.py::test_list_markdown_fields_licences - AssertionError: assert '# test-proje...e\n````\n\n\n' == '' + # test-project licenses + ## bar + + | Name | bar | + |----|----| + | Version | 3.0.1 | + | Licenses | B License | + + bar-3.0.1.dist-info/LICENSE + + + ```` + license text for bar here + ```` + + + ## baz + + | Name | baz | + |----|----| + | Version | 2.7 | + | Licenses | C License | + + bar-2.7.dist-info/LICENSE + + + ```` + license text for baz here + ```` + + + ## classifier + + | Name | classifier | + |----|----| + | Version | 1.0 | + | Licenses | PDM TEST D | + + classifier-1.0.dist-info/LICENCE + + + ```` + Problem finding license text: division by zero + ```` + + + ## foo + + | Name | foo | + |----|----| + | Version | 0.1.0 | + | Licenses | A License | + + foo-0.1.0.dist-info/LICENSE + + + ```` + license text for foo here + ```` + + + ## unknown + + | Name | unknown | + |----|----| + | Version | 1.0 | + | Licenses | Apache Software License | + + unknown-1.0.dist-info/COPYING + + + ```` + license text for UNKNOWN here + ```` + + FAILED tests/cli/test_list.py::test_list_csv_include_exclude_valid - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_packages_in_given_venv - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_list.py::test_list_csv_include_exclude - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_command - AssertionError: expected call not found. Expected: do_lock(, refresh=False, groups=['default'], hooks=, strategy_change=None, strategy='all') Actual: not called. FAILED tests/cli/test_lock.py::test_lock_refresh[args0] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_lock.py::test_lock_refresh[args1] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_lock.py::test_lock_refresh_keep_consistent - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_lock.py::test_lock_check_no_change_success - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_lock.py::test_lock_check_change_fails - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_lock.py::test_innovations_with_specified_lockfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_selected_groups - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_self_referencing_groups[False] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_self_referencing_groups[True] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_multiple_platform_wheels - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_current_platform_wheels[args0] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_current_platform_wheels[args1] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_parse_lock_strategy_group_options - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_direct_minimal_versions - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_direct_minimal_versions_real[args0] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_direct_minimal_versions_real[args1] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lockfile_compatibility[4.1.0-2] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lockfile_compatibility[4.1.1-1] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lockfile_compatibility[4.1.2-3] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lockfile_compatibility[4.2-0] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lockfile_compatibility[3.0-0] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lockfile_compatibility[4.0.1-2] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_default_inherit_metadata - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_lock.py::test_lock_inherit_metadata_strategy - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_others.py::test_project_no_init_error - AssertionError: assert 'The pyproject.toml has not been initialized yet' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_others.py::test_help_option - AssertionError: assert 'Usage: pdm [-h]' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output FAILED tests/cli/test_others.py::test_pep582_option - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_info_command - AssertionError: assert 'Project Root:' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output FAILED tests/cli/test_others.py::test_info_command_json - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_others.py::test_info_global_project - AssertionError: assert 'global-project' in '' + where '' = () + where = ''.strip + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output FAILED tests/cli/test_others.py::test_info_with_multiple_venvs - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_others.py::test_global_project_other_location - AssertionError: assert '' == '/usr/src/tmp...t_other_loca0' - /usr/src/tmp/pytest-of-builder/pytest-0/test_global_project_other_loca0 FAILED tests/cli/test_others.py::test_uncaught_error - AssertionError: assert '[RuntimeError]: test error' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_others.py::test_import_other_format_file[requirements.txt] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_import_other_format_file[Pipfile] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_import_other_format_file[pyproject.toml] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_import_other_format_file[projects/flit-demo/pyproject.toml] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_import_requirement_no_overwrite - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_show_self_package - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_export_to_requirements_txt - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_export_doesnt_include_dep_with_extras - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_others.py::test_completion_command - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_publish.py::test_publish_pick_up_asc_files - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_publish.py::test_publish_package_with_signature - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_publish.py::test_publish_and_build_in_one_run - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_command - AssertionError: Expected 'do_remove' to have been called once. Called 0 times. FAILED tests/cli/test_remove.py::test_remove_editable_packages_while_keeping_normal - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package[False] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package[True] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_no_lock[False] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_no_lock[True] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_with_dry_run - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_no_sync - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_not_exist - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_exist_in_multi_groups - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_package_wont_break_toml - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_remove.py::test_remove_group_not_in_lockfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_pep582_launcher_for_python_interpreter - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_auto_isolate_site_packages - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_run_with_site_packages - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_command_not_found - assert "Command 'foobar' is not found in your PATH." in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_run.py::test_run_cmd_script - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_cmd_script_with_array - AssertionError: assert 1 == 22 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_script_pass_project_root - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_shell_script - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_script_with_relative_path - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_run_non_existing_local_script - AssertionError: assert 'not a valid executable' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_run.py::test_run_shell_script_with_args_placeholder[with-args] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_shell_script_with_args_placeholder[without-args] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_shell_script_with_args_placeholder_with_default[with-args] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_shell_script_with_args_placeholder_with_default[with-default] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_call_script - AssertionError: assert 1 == 8 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_script_with_extra_args - AssertionError: assert ['Changes are...roject.toml.'] == ['-a', '-b', '-c'] At index 0 diff: 'Changes are written to pyproject.toml.' != '-a' Right contains 2 more items, first extra item: '-b' Full diff: [ + 'Changes are written to pyproject.toml.', - '-a', - '-b', - '-c', ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder[as-str-with-args] - AssertionError: assert [] == ['-a', '-b', '-c', '-x'] Right contains 4 more items, first extra item: '-a' Full diff: + [] - [ - '-a', - '-b', - '-c', - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder[as-str-without-args] - AssertionError: assert [] == ['-x'] Right contains one more item: '-x' Full diff: + [] - [ - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder[as-list-with-args] - AssertionError: assert [] == ['-a', '-b', '-c', '-x'] Right contains 4 more items, first extra item: '-a' Full diff: + [] - [ - '-a', - '-b', - '-c', - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder[as-list-without-args] - AssertionError: assert [] == ['-x'] Right contains one more item: '-x' Full diff: + [] - [ - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-str-with-args] - AssertionError: assert [] == ['-a', '-b', '-c', '-x'] Right contains 4 more items, first extra item: '-a' Full diff: + [] - [ - '-a', - '-b', - '-c', - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-str-default] - AssertionError: assert [] == ['--default', '--value', '-x'] Right contains 3 more items, first extra item: '--default' Full diff: + [] - [ - '--default', - '--value', - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-list-with-args] - AssertionError: assert [] == ['-a', '-b', '-c', '-x'] Right contains 4 more items, first extra item: '-a' Full diff: + [] - [ - '-a', - '-b', - '-c', - '-x', - ] FAILED tests/cli/test_run.py::test_run_script_with_args_placeholder_with_default[as-list-default] - AssertionError: assert [] == ['--default', '--value', '-x'] Right contains 3 more items, first extra item: '--default' Full diff: + [] - [ - '--default', - '--value', - '-x', - ] FAILED tests/cli/test_run.py::test_run_shell_script_with_pdm_placeholder - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_expand_env_vars - AssertionError: assert '' == '1' - 1 FAILED tests/cli/test_run.py::test_run_script_with_env_defined - AssertionError: assert '' == 'bar' - bar FAILED tests/cli/test_run.py::test_run_script_with_dotenv_file - AssertionError: assert '' == 'bar foo' - bar foo FAILED tests/cli/test_run.py::test_run_script_override_global_env - AssertionError: assert '' == 'bar' - bar FAILED tests/cli/test_run.py::test_run_show_list_of_scripts - IndexError: list index out of range FAILED tests/cli/test_run.py::test_run_show_list_of_scripts_hide_internals - AssertionError: assert 'public' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output FAILED tests/cli/test_run.py::test_run_json_list_of_scripts - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_run_with_another_project_root[True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_with_another_project_root[False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_import_another_sitecustomize - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_with_patched_sysconfig - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_run.py::test_run_composite - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_stops_on_first_failure - AssertionError: assert 'First CALLED' in '' FAILED tests/cli/test_run.py::test_composite_inherit_env - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_fail_on_first_missing_task - AssertionError: assert 'First CALLED' in '' FAILED tests/cli/test_run.py::test_composite_runs_all_hooks - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_pass_parameters_to_subtasks - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_can_pass_parameters - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args[with-args] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args[without-args] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args_with_default[with-args] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_only_pass_parameters_to_subtasks_with_args_with_default[default] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_hooks_inherit_env - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_inherit_env_in_cascade - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_inherit_dotfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_composite_can_have_commands - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_run_shortcut - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_run_shortcuts_dont_override_commands - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_run.py::test_run_shortcut_fail_with_usage_if_script_not_found - AssertionError: assert 'Script unknown: whatever' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_run.py::test_empty_positionnal_args_still_display_usage[unknown param] - AssertionError: assert 'Usage' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_run.py::test_empty_positionnal_args_still_display_usage[not an user script] - AssertionError: assert 'Usage' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_run.py::test_empty_positional_args_display_help - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_list - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_list_plugins - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_add - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_remove - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_update[args0-expected0] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_update[args1-expected1] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_update[args2-expected2] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_self_command.py::test_self_update_already_latest - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_update.py::test_update_packages_with_top - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_command - AssertionError: Expected 'do_update' to have been called once. Called 0 times. FAILED tests/cli/test_update.py::test_update_ignore_constraints - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_all_packages[reuse] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_all_packages[all] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_no_lock - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_dry_run - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_top_packages_dry_run - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_specified_packages - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_specified_packages_eager_mode - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_specified_packages_eager_mode_config - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_with_package_and_groups_argument - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_with_prerelease_without_package_argument - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_existing_package_with_prerelease - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_package_with_extras - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_groups_in_lockfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_update.py::test_update_group_not_in_lockfile - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_use.py::test_use_command - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_use.py::test_use_python_by_version - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_use.py::test_use_venv_python - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_utils.py::test_help_with_unknown_arguments - AssertionError: assert 'Usage: pdm add ' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_venv.py::test_venv_create - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_create_in_project - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_venv.py::test_venv_create_other_location - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_venv.py::test_venv_show_path - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_venv.py::test_venv_list - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_remove - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_recreate - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_activate[virtualenv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_activate[venv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_activate_custom_prompt[virtualenv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_activate_custom_prompt[venv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_activate_project_without_python - assert "The project doesn't have a saved python.path" in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).stderr FAILED tests/cli/test_venv.py::test_venv_activate_error - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/cli/test_venv.py::test_venv_activate_no_shell[virtualenv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_activate_no_shell[venv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_auto_create[False] - AssertionError: Expected 'create' to have been called once. Called 0 times. FAILED tests/cli/test_venv.py::test_venv_purge - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_force - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_interactive[virtualenv-none-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_interactive[virtualenv-0-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_interactive[virtualenv-all-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_interactive[venv-none-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_interactive[venv-0-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/cli/test_venv.py::test_venv_purge_interactive[venv-all-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/models/test_backends.py::test_project_backend[pdm-backend] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/models/test_backends.py::test_project_backend[setuptools] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/models/test_backends.py::test_project_backend[flit-core] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/models/test_backends.py::test_project_backend[hatchling] - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/test_installer.py::test_install_wheel_with_cache[symlink] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_installer.py::test_install_wheel_with_cache[hardlink] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_installer.py::test_install_wheel_with_cache[None] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_integration.py::test_actual_list_freeze - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/test_plugin.py::test_plugin_new_command - AssertionError: assert 'hello' in '' + where '' = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).output FAILED tests/test_plugin.py::test_plugin_replace_command - AssertionError: assert '' == 'Hello world' - Hello world FAILED tests/test_plugin.py::test_load_multiple_plugings - AssertionError: assert '' == 'Hello world' - Hello world FAILED tests/test_plugin.py::test_old_entry_point_compatibility - AssertionError: assert '' == 'Hello world' - Hello world FAILED tests/test_plugin.py::test_project_plugin_library - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given FAILED tests/test_project.py::test_create_venv_first_time[virtualenv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_create_venv_first_time[venv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_create_venv_in_project[virtualenv-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_create_venv_in_project[virtualenv-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_create_venv_in_project[venv-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_create_venv_in_project[venv-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_find_interpreters_from_venv[virtualenv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_find_interpreters_from_venv[venv] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_quiet_mode[True-extra_args0] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_quiet_mode[False-extra_args1] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_ignore_package_warning[foo-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_ignore_package_warning[bar-False] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_ignore_package_warning[*-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_project.py::test_ignore_package_warning[f?o-True] - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_signals.py::test_post_init_signal - AssertionError: assert 1 == 0 + where 1 = RunResult(exit_code=1, stdout='', stderr='', exception=TypeError('ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given')).exit_code FAILED tests/test_signals.py::test_post_lock_and_install_signals - TypeError: ErrorArgumentParser._parse_known_args() takes 3 positional arguments but 4 were given ===== 402 failed, 417 passed, 1 skipped, 4 deselected, 1 xfailed in 45.67s ===== INFO : Command's result: FAILURE INFO : Command's error: Command '['python3', '-m', 'pytest', '-k', 'not network']' returned non-zero exit status 1. error: Bad exit status from /usr/src/tmp/rpm-tmp.63330 (%check) RPM build errors: Bad exit status from /usr/src/tmp/rpm-tmp.63330 (%check) Command exited with non-zero status 1 44.06user 5.86system 0:50.13elapsed 99%CPU (0avgtext+0avgdata 221544maxresident)k 0inputs+0outputs (0major+919000minor)pagefaults 0swaps hsh-rebuild: rebuild of `python3-module-pdm-2.11.2-alt1.src.rpm' failed. Command exited with non-zero status 1 4.40user 3.72system 1:05.44elapsed 12%CPU (0avgtext+0avgdata 137756maxresident)k 208inputs+0outputs (0major+344949minor)pagefaults 0swaps