<86>Dec 14 10:03:19 userdel[2469870]: delete user 'rooter' <86>Dec 14 10:03:19 userdel[2469870]: removed group 'rooter' owned by 'rooter' <86>Dec 14 10:03:19 userdel[2469870]: removed shadow group 'rooter' owned by 'rooter' <86>Dec 14 10:03:19 groupadd[2469914]: group added to /etc/group: name=rooter, GID=1223 <86>Dec 14 10:03:19 groupadd[2469914]: group added to /etc/gshadow: name=rooter <86>Dec 14 10:03:19 groupadd[2469914]: new group: name=rooter, GID=1223 <86>Dec 14 10:03:19 useradd[2469944]: new user: name=rooter, UID=1223, GID=1223, home=/root, shell=/bin/bash, from=none <86>Dec 14 10:03:19 userdel[2469984]: delete user 'builder' <86>Dec 14 10:03:19 userdel[2469984]: removed group 'builder' owned by 'builder' <86>Dec 14 10:03:19 userdel[2469984]: removed shadow group 'builder' owned by 'builder' <86>Dec 14 10:03:19 groupadd[2470014]: group added to /etc/group: name=builder, GID=1224 <86>Dec 14 10:03:19 groupadd[2470014]: group added to /etc/gshadow: name=builder <86>Dec 14 10:03:19 groupadd[2470014]: new group: name=builder, GID=1224 <86>Dec 14 10:03:19 useradd[2470042]: new user: name=builder, UID=1224, GID=1224, home=/usr/src, shell=/bin/bash, from=none <13>Dec 14 10:03:24 rpmi: libmpdec3-2.5.1-alt3 sisyphus+314490.500.5.1 1675432033 installed <13>Dec 14 10:03:24 rpmi: libgdbm-1.8.3-alt10 sisyphus+346222.200.3.2 1716468406 installed <13>Dec 14 10:03:24 rpmi: libexpat-2.5.0-alt1 sisyphus+346180.200.2.1 1716349845 installed <13>Dec 14 10:03:24 rpmi: libb2-0.98.1-alt1_1 sisyphus+291614.100.1.1 1638962878 installed <13>Dec 14 10:03:24 rpmi: libp11-kit-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622586 installed <13>Dec 14 10:03:24 rpmi: libtasn1-4.19.0-alt3 sisyphus+327816.100.1.1 1692802618 installed <13>Dec 14 10:03:24 rpmi: rpm-macros-alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Dec 14 10:03:24 rpmi: alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Dec 14 10:03:24 rpmi: ca-certificates-2024.12.10-alt1 sisyphus+364633.200.3.1 1733918603 installed <13>Dec 14 10:03:24 rpmi: ca-trust-0.2.0-alt1 sisyphus+344843.100.1.1 1712743326 installed <13>Dec 14 10:03:24 rpmi: p11-kit-trust-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622586 installed <13>Dec 14 10:03:24 rpmi: libcrypto3-3.1.7-alt2 sisyphus+359910.100.1.1 1729080696 installed <13>Dec 14 10:03:24 rpmi: libssl3-3.1.7-alt2 sisyphus+359910.100.1.1 1729080696 installed <13>Dec 14 10:03:24 rpmi: python3-3.12.8-alt1 sisyphus+364336.100.1.1 1733526985 installed <13>Dec 14 10:03:25 rpmi: python3-base-3.12.8-alt1 sisyphus+364336.100.1.1 1733526985 installed <13>Dec 14 10:03:25 rpmi: python3-module-py3dephell-0.1.0-alt2 sisyphus+328191.600.5.1 1693609196 installed <13>Dec 14 10:03:25 rpmi: tests-for-installed-python3-pkgs-0.1.25-alt1 sisyphus+344685.100.1.1 1712595070 installed <13>Dec 14 10:03:25 rpmi: rpm-build-python3-0.1.25-alt1 sisyphus+344685.100.1.1 1712595070 installed <13>Dec 14 10:03:28 rpmi: python3-module-packaging-24.2-alt1 sisyphus+362183.100.1.1 1731315992 installed <13>Dec 14 10:03:28 rpmi: python3-module-system-seed-wheels-0.0.1-alt1 sisyphus+270533.400.6.1 1619683380 installed <13>Dec 14 10:03:28 rpmi: python3-module-more-itertools-10.5.0-alt1 sisyphus+357221.100.1.1 1725964420 installed <13>Dec 14 10:03:28 rpmi: python3-module-urllib3-2:2.2.3-alt1 sisyphus+357427.100.2.1 1726567364 installed <13>Dec 14 10:03:28 rpmi: libidn2-2.3.7-alt1 sisyphus+339505.100.1.2 1706718975 installed <13>Dec 14 10:03:28 rpmi: libnettle8-3.9.1-alt1 sisyphus+322548.100.1.2 1686176897 installed <13>Dec 14 10:03:28 rpmi: python3-module-jaraco.functools-4.1.0-alt1 sisyphus+358564.100.1.1 1727528718 installed <13>Dec 14 10:03:28 rpmi: python3-module-platformdirs-4.3.6-alt1 sisyphus+357787.200.1.1 1726664692 installed <13>Dec 14 10:03:28 rpmi: libhogweed6-3.9.1-alt1 sisyphus+322548.100.1.2 1686176897 installed <13>Dec 14 10:03:28 rpmi: libgnutls30-3.8.8-alt2 sisyphus+364832.100.1.1 1734008167 installed <13>Dec 14 10:03:28 rpmi: libngtcp2.16-1.9.1-alt1 sisyphus+363819.100.1.1 1733129258 installed <13>Dec 14 10:03:28 rpmi: libngtcp2_crypto_gnutls8-1.9.1-alt1 sisyphus+363819.100.1.1 1733129258 installed <13>Dec 14 10:03:28 rpmi: python3-module-pip-wheel-24.3.1-alt1 sisyphus+361010.100.1.1 1730124559 installed <13>Dec 14 10:03:28 rpmi: python3-module-setuptools-wheel-1:75.6.0-alt1 sisyphus+363072.100.1.1 1732185085 installed <13>Dec 14 10:03:28 rpmi: python3-module-wheel-wheel-0.45.1-alt1 sisyphus+363326.100.2.1 1732609969 installed <13>Dec 14 10:03:28 rpmi: python3-module-system-seed-wheels-wheels-0.0.1-alt1 sisyphus+270533.400.6.1 1619683380 installed <13>Dec 14 10:03:28 rpmi: python3-module-pyproject-metadata-0.9.0-alt1 sisyphus+360526.100.1.1 1729680788 installed <13>Dec 14 10:03:28 rpmi: python3-module-wheel-0.45.1-alt1 sisyphus+363326.100.2.1 1732609969 installed <13>Dec 14 10:03:28 rpmi: python3-module-tomli_w-1.1.0-alt1 sisyphus+359333.100.1.1 1728467136 installed <13>Dec 14 10:03:28 rpmi: python3-module-tomli-2.2.1-alt1 sisyphus+363592.100.1.1 1732803942 installed <13>Dec 14 10:03:28 rpmi: python3-module-pdm-alt-namespace-0.0.1-alt1 sisyphus+307894.100.1.1 1664987422 installed <13>Dec 14 10:03:28 rpmi: python3-module-markupsafe-1:3.0.2-alt1 sisyphus+360209.100.1.1 1729323052 installed <13>Dec 14 10:03:28 rpmi: python3-module-werkzeug-3.1.3-alt1 sisyphus+361875.200.2.1 1731337173 installed <13>Dec 14 10:03:28 rpmi: python3-module-mdurl-0.1.2-alt1 sisyphus+318894.1000.3.1 1682420700 installed <13>Dec 14 10:03:29 rpmi: python3-module-markdown-it-3.0.0-alt1 sisyphus+324665.100.1.1 1689081992 installed <13>Dec 14 10:03:29 rpmi: python3-module-jaraco.context-6.0.1-alt1 sisyphus+357809.300.1.1 1726769204 installed <13>Dec 14 10:03:29 rpmi: python3-module-pluggy-1.5.0-alt1 sisyphus+345632.100.2.1 1713864244 installed <13>Dec 14 10:03:29 rpmi: python3-module-iniconfig-2.0.0-alt1 sisyphus+314076.200.3.1 1674737275 installed <13>Dec 14 10:03:29 rpmi: python3-module-pytest-8.3.4-alt1 sisyphus+363889.100.1.1 1733152874 installed <13>Dec 14 10:03:29 rpmi: python3-module-filelock-3.16.1-alt1 sisyphus+357787.100.1.1 1726664660 installed <13>Dec 14 10:03:29 rpmi: python3-module-editables-0.5-alt1 sisyphus+325524.100.1.1 1690277257 installed <13>Dec 14 10:03:29 rpmi: python3-module-distlib-0.3.9-alt1 sisyphus+359423.100.1.1 1728557083 installed <13>Dec 14 10:03:29 rpmi: python3-module-idna-3.10-alt1 sisyphus+358681.100.1.1 1727701241 installed <13>Dec 14 10:03:29 rpmi: python3-module-charset-normalizer-3.2.0-alt1 sisyphus+347396.200.2.1 1714733144 installed <13>Dec 14 10:03:29 rpmi: python3-module-requests-2.32.3-alt1 sisyphus+349946.100.1.1 1717059877 installed <13>Dec 14 10:03:29 rpmi: python3-module-msgpack-1.0.7-alt1 sisyphus+340996.100.2.1 1708285631 installed <13>Dec 14 10:03:29 rpmi: python3-module-autocommand-2.2.2-alt1.1 sisyphus+339714.100.1.1 1706968174 installed <13>Dec 14 10:03:29 rpmi: python3-module-jaraco.text-4.0.0-alt1 sisyphus+353877.400.2.1 1722250727 installed <13>Dec 14 10:03:29 rpmi: python3-module-jaraco.collections-5.1.0-alt1 sisyphus+357809.200.1.1 1726769173 installed <13>Dec 14 10:03:29 rpmi: python3-module-pkg_resources-1:75.6.0-alt1 sisyphus+363072.100.1.1 1732185085 installed <13>Dec 14 10:03:29 rpmi: python3-module-Pygments-2.18.0-alt1 sisyphus+347552.100.1.1 1714992955 installed <13>Dec 14 10:03:29 rpmi: python3-module-pycparser-2.21-alt1.1 sisyphus+309935.7300.4.1 1668527005 installed <13>Dec 14 10:03:29 rpmi: python3-module-cffi-1.17.1-alt1 sisyphus+357396.100.1.1 1726156488 installed <13>Dec 14 10:03:29 rpmi: python3-module-cryptography-43.0.0-alt1 sisyphus+353417.100.1.1 1721731017 installed <13>Dec 14 10:03:29 rpmi: python3-module-openssl-24.2.1-alt1 sisyphus+353417.200.1.1 1721731036 installed <13>Dec 14 10:03:30 rpmi: mercurial-6.8.1-alt1 sisyphus+358552.100.1.1 1727504031 installed <13>Dec 14 10:03:30 rpmi: libpython3-3.12.8-alt1 sisyphus+364336.100.1.1 1733526985 installed <13>Dec 14 10:03:30 rpmi: libncurses6-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486782 installed <13>Dec 14 10:03:30 rpmi: libtinfo-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486782 installed <13>Dec 14 10:03:30 rpmi: libncurses-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486782 installed <13>Dec 14 10:03:31 rpmi: python3-dev-3.12.8-alt1 sisyphus+364336.100.1.1 1733526985 installed <13>Dec 14 10:03:32 rpmi: python3-module-setuptools-1:75.6.0-alt1 sisyphus+363072.100.1.1 1732185085 installed <13>Dec 14 10:03:32 rpmi: libssh2-1.11.0-alt2 sisyphus+339356.100.1.1 1706593140 installed <13>Dec 14 10:03:32 rpmi: publicsuffix-list-dafsa-20240911-alt1 sisyphus+357399.100.1.1 1726160479 installed <13>Dec 14 10:03:32 rpmi: libpsl-0.21.5-alt1 sisyphus+338474.100.1.1 1705684771 installed <13>Dec 14 10:03:32 rpmi: libnghttp3.9-1.6.0-alt1 sisyphus+363819.40.1.1 1733129195 installed <13>Dec 14 10:03:32 rpmi: libnghttp2-1.64.0-alt1 sisyphus+363795.200.2.1 1733118560 installed <13>Dec 14 10:03:32 rpmi: openldap-common-2.6.9-alt1 sisyphus+364781.100.1.1 1733971238 installed <13>Dec 14 10:03:32 rpmi: libntlm-1.5-alt1 sisyphus+278100.3300.1.1 1626059663 installed <13>Dec 14 10:03:32 rpmi: libidn-1.37-alt2 sisyphus+300849.100.1.1 1653769693 installed <13>Dec 14 10:03:32 rpmi: libbrotlicommon-1.1.0-alt1 sisyphus+328501.100.1.1 1693598420 installed <13>Dec 14 10:03:32 rpmi: libbrotlidec-1.1.0-alt1 sisyphus+328501.100.1.1 1693598420 installed <13>Dec 14 10:03:32 rpmi: libxxhash-0.8.2-alt1 sisyphus+336514.200.7.1 1702672120 installed <13>Dec 14 10:03:32 rpmi: liblz4-1:1.9.4-alt1 sisyphus+309416.100.1.1 1667413000 installed <13>Dec 14 10:03:32 rpmi: rsync-3.2.7-alt1 sisyphus+325006.2000.1.1 1689498390 installed <13>Dec 14 10:03:32 rpmi: openssh-common-9.6p1-alt2 sisyphus+351911.100.1.1 1719838551 installed <13>Dec 14 10:03:32 rpmi: libverto-0.3.2-alt1_1 sisyphus+321176.2200.10.2 1684806164 installed <13>Dec 14 10:03:32 rpmi: liblmdb-0.9.33-alt1 sisyphus+360625.100.1.1 1729819639 installed <13>Dec 14 10:03:32 rpmi: libkeyutils-1.6.3-alt1 sisyphus+346336.200.2.2 1716472658 installed <13>Dec 14 10:03:32 rpmi: libcom_err-1.47.1.0.10.ad56-alt2 sisyphus+363497.200.3.1 1732729916 installed <86>Dec 14 10:03:32 groupadd[2491709]: group added to /etc/group: name=_keytab, GID=999 <86>Dec 14 10:03:32 groupadd[2491709]: group added to /etc/gshadow: name=_keytab <86>Dec 14 10:03:32 groupadd[2491709]: new group: name=_keytab, GID=999 <13>Dec 14 10:03:32 rpmi: libkrb5-1.21.3-alt2 sisyphus+351857.100.1.1 1719735219 installed <13>Dec 14 10:03:32 rpmi: libgsasl18-2.2.1-alt2 sisyphus+359713.200.2.1 1728905438 installed <86>Dec 14 10:03:32 groupadd[2491829]: group added to /etc/group: name=sasl, GID=998 <86>Dec 14 10:03:32 groupadd[2491829]: group added to /etc/gshadow: name=sasl <86>Dec 14 10:03:32 groupadd[2491829]: new group: name=sasl, GID=998 <13>Dec 14 10:03:32 rpmi: libsasl2-3-2.1.28-alt2 sisyphus+343335.100.1.1 1711112524 installed <13>Dec 14 10:03:32 rpmi: libldap2-2.6.9-alt1 sisyphus+364781.100.1.1 1733971261 installed <13>Dec 14 10:03:32 rpmi: libcurl-8.11.1-alt1 sisyphus+364692.100.1.1 1733905244 installed <13>Dec 14 10:03:32 rpmi: libedit3-3.1.20230828-alt1 sisyphus+330914.200.3.1 1696922745 installed <86>Dec 14 10:03:32 groupadd[2492000]: group added to /etc/group: name=sshagent, GID=997 <86>Dec 14 10:03:32 groupadd[2492000]: group added to /etc/gshadow: name=sshagent <86>Dec 14 10:03:32 groupadd[2492000]: new group: name=sshagent, GID=997 <13>Dec 14 10:03:32 rpmi: openssh-clients-9.6p1-alt2 sisyphus+351911.100.1.1 1719838551 installed <13>Dec 14 10:03:32 rpmi: less-633-alt1 sisyphus+328181.300.2.1 1693321749 installed <13>Dec 14 10:03:32 rpmi: diffstat-1.64-alt1 sisyphus+346132.200.3.2 1716466240 installed <13>Dec 14 10:03:32 rpmi: git-core-2.42.2-alt1 sisyphus+348068.100.1.1 1715721643 installed <13>Dec 14 10:03:32 rpmi: python3-module-setuptools_scm-8.1.0-alt1 sisyphus+358552.200.1.1 1727504224 installed <13>Dec 14 10:03:32 rpmi: python3-module-requests_toolbelt-1.0.0-alt3 sisyphus+338996.100.1.1 1706201427 installed <13>Dec 14 10:03:32 rpmi: python3-module-rich-13.9.4-alt1 sisyphus+361780.100.1.1 1730842428 installed <13>Dec 14 10:03:32 rpmi: python3-module-cachecontrol-0.14.1-alt1 sisyphus+361708.100.1.1 1730793837 installed <13>Dec 14 10:03:32 rpmi: python3-module-unearth-0.12.1-alt1 sisyphus+330404.5000.15.1 1698684758 installed <13>Dec 14 10:03:32 rpmi: python3-module-virtualenv-20.28.0-alt1 sisyphus+363402.100.2.1 1732630993 installed <13>Dec 14 10:03:32 rpmi: python3-module-pdm-backend-2.4.3-alt1 sisyphus+360580.100.1.1 1729759710 installed <13>Dec 14 10:03:32 rpmi: python3-module-flaky-3.8.1-alt1 sisyphus+344119.100.1.1 1711967596 installed <13>Dec 14 10:03:32 rpmi: python3-module-pytest-httpserver-1.1.0-alt1 sisyphus+354948.100.1.1 1723435275 installed <13>Dec 14 10:03:33 rpmi: python3-module-pytest-mock-3.14.0-alt1 sisyphus+343327.100.2.2 1711118794 installed <13>Dec 14 10:03:33 rpmi: python3-module-dep-logic-0.0.4-alt1 sisyphus+337664.1700.3.1 1704822457 installed <13>Dec 14 10:03:33 rpmi: python3-module-findpython-0.4.1-alt1 sisyphus+337664.1000.3.1 1704822288 installed <13>Dec 14 10:03:33 rpmi: python3-module-tomlkit-0.13.2-alt1 sisyphus+358344.100.2.1 1727351286 installed <13>Dec 14 10:03:33 rpmi: python3-module-shellingham-1.5.4-alt1 sisyphus+332574.100.1.1 1698135363 installed <13>Dec 14 10:03:33 rpmi: python3-module-resolvelib-1.1.0-alt1 sisyphus+361352.200.2.1 1730462194 installed <13>Dec 14 10:03:33 rpmi: python3-module-python-dotenv-1.0.1-alt1 sisyphus+339410.100.1.1 1706637602 installed <13>Dec 14 10:03:33 rpmi: python3-module-pyproject_hooks-1.1.0-alt2 sisyphus+352023.500.4.2 1720458740 installed <13>Dec 14 10:03:33 rpmi: python3-module-installer-0.7.0-alt1 sisyphus+318881.100.2.1 1681988183 installed <13>Dec 14 10:03:33 rpmi: python3-module-first-2.0.2-alt1 sisyphus+307723.100.1.1 1664644579 installed <13>Dec 14 10:03:33 rpmi: python3-module-blinker-1.9.0-alt1 sisyphus+362571.300.7.1 1734000808 installed Building target platforms: i586 Building for target i586 Wrote: /usr/src/in/nosrpm/python3-module-pdm-2.11.2-alt1.nosrc.rpm (w1.gzdio) <13>Dec 14 10:03:34 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: i586 Building for target i586 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.11552 + 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) 7f6c75d] 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.11552 + 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 -march=i586 -mtune=generic' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + /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.74429 + 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.9599 + 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 -march=i586 -mtune=generic' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + 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 0xf5d79848> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5c745c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5c615c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5cd0438> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5ccaed8> 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/lib/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 0xf59cf7f8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5b61938> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5b207f8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5bc09d8> @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 0xf5aeb8e8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5d0fed8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5abfde8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5a28d48> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5c1bf78> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5c02cf8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf57eb7f8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5a39a78> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5a46f28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5827758> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf58f4848> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf56f70c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf58bcc08> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf58eff78> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf583bc58> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf56b4ed8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5628bb8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf55fdf28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf55f8f28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5736078> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf5766e88> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf58970c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf569ed48> 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/lib/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 0xf552b2a8> pdm = .caller at 0xf55b0a78> 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 0xf559a5c8> pdm = .caller at 0xf559a4d8>, 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 0xf552b668> @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 0xf59521b8> @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 0xf552ff28> @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 0xf55a26b8> @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 0xf5ba1de8> @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 0xf53f5668> @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 0xf543ea28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_config_command ______________________________ project = pdm = .caller at 0xf55bdd48> 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 0xf5644e88> 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 0xf4806b18> 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 0xf482ef78> 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 0xf53b5e38> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf483fc30> 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 0xf4b8cac8> 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 0xf48f44d8> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf4b807e0> 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 0xf48d7f28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf48f4618> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_config_get_repository __________________________ project = pdm = .caller at 0xf53f56b8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_fix_individual_problem __________________________ project = pdm = .caller at 0xf556b988> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ____________________________ test_show_fix_command _____________________________ project = pdm = .caller at 0xf54c5618> 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 0xf55efd48> 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 0xf55c93e8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_pre_script_fail_fast ___________________________ project = pdm = .caller at 0xf45cbac8> capfd = <_pytest.capture.CaptureFixture object at 0xf45c9fd8> 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 0xf499c208> capfd = <_pytest.capture.CaptureFixture object at 0xf49a1ca8>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf499b618> capfd = <_pytest.capture.CaptureFixture object at 0xf46437e0>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf463d758> capfd = <_pytest.capture.CaptureFixture object at 0xf461cc00>, 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf46a07a8> capfd = <_pytest.capture.CaptureFixture object at 0xf469c918> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf48559d8> capfd = <_pytest.capture.CaptureFixture object at 0xf4870df8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4b6cf78> capfd = <_pytest.capture.CaptureFixture object at 0xf4b68a20> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf454d118> capfd = <_pytest.capture.CaptureFixture object at 0xf4551d98> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf55506b8> capfd = <_pytest.capture.CaptureFixture object at 0xf46184e0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf45340c8> capfd = <_pytest.capture.CaptureFixture object at 0xf463c1c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf441bac8> capfd = <_pytest.capture.CaptureFixture object at 0xf46482d0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4469168> capfd = <_pytest.capture.CaptureFixture object at 0xf4b3cc78> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4470b68> capfd = <_pytest.capture.CaptureFixture object at 0xf4475c48> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4601078> capfd = <_pytest.capture.CaptureFixture object at 0xf45f7528> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf439a078> capfd = <_pytest.capture.CaptureFixture object at 0xf4398678> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf49d8078> capfd = <_pytest.capture.CaptureFixture object at 0xf49fba98> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf49630c8> capfd = <_pytest.capture.CaptureFixture object at 0xf43bf828> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf42d4cf8> capfd = <_pytest.capture.CaptureFixture object at 0xf42bd5e8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4287e88> capfd = <_pytest.capture.CaptureFixture object at 0xf42859f0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4393a28> capfd = <_pytest.capture.CaptureFixture object at 0xf435e7f8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf434ac08> capfd = <_pytest.capture.CaptureFixture object at 0xf4351420> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4287ac8> capfd = <_pytest.capture.CaptureFixture object at 0xf42bbcf0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf432c208> capfd = <_pytest.capture.CaptureFixture object at 0xf4968c60> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf39cc2a8> capfd = <_pytest.capture.CaptureFixture object at 0xf4255b28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf44e8e88> capfd = <_pytest.capture.CaptureFixture object at 0xf54fbd08> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4898168> capfd = <_pytest.capture.CaptureFixture object at 0xf4b68ed0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf46782a8> capfd = <_pytest.capture.CaptureFixture object at 0xf4684540> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf41e3208> capfd = <_pytest.capture.CaptureFixture object at 0xf41d9960> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf44a7258> capfd = <_pytest.capture.CaptureFixture object at 0xf42bde70> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf42f7208> capfd = <_pytest.capture.CaptureFixture object at 0xf4302948> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4583168> capfd = <_pytest.capture.CaptureFixture object at 0xf457ea98> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf45930c8> capfd = <_pytest.capture.CaptureFixture object at 0xf458feb8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4247118> capfd = <_pytest.capture.CaptureFixture object at 0xf42e5a50> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf37bc398> capfd = <_pytest.capture.CaptureFixture object at 0xf37a2a20> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf37e2348> capfd = <_pytest.capture.CaptureFixture object at 0xf37e6c18> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf37432a8> capfd = <_pytest.capture.CaptureFixture object at 0xf4556f00> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf3597a28> capfd = <_pytest.capture.CaptureFixture object at 0xf458f5b8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf3614708> capfd = <_pytest.capture.CaptureFixture object at 0xf3605078> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf372d6b8> capfd = <_pytest.capture.CaptureFixture object at 0xf3628f60> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf396ccf8> capfd = <_pytest.capture.CaptureFixture object at 0xf3988e10> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf39849d8> capfd = <_pytest.capture.CaptureFixture object at 0xf43ffcf0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf4410a78> capfd = <_pytest.capture.CaptureFixture object at 0xf3590db0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf3935ac8> capfd = <_pytest.capture.CaptureFixture object at 0xf3920e10> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf392a208> capfd = <_pytest.capture.CaptureFixture object at 0xf379f7b0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf368b168> capfd = <_pytest.capture.CaptureFixture object at 0xf4231ca8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf35d90c8> capfd = <_pytest.capture.CaptureFixture object at 0xf430c318> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf36f4398> capfd = <_pytest.capture.CaptureFixture object at 0xf378e5b8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf36f50c8> capfd = <_pytest.capture.CaptureFixture object at 0xf4322e70> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2aa7898> capfd = <_pytest.capture.CaptureFixture object at 0xf39874e0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2cbf9d8> capfd = <_pytest.capture.CaptureFixture object at 0xf2cc35d0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf36431b8> capfd = <_pytest.capture.CaptureFixture object at 0xf36569c0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2a38de8> capfd = <_pytest.capture.CaptureFixture object at 0xf2a1a198> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2a45a78> capfd = <_pytest.capture.CaptureFixture object at 0xf2a66d08> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2a45ca8> capfd = <_pytest.capture.CaptureFixture object at 0xf2966450> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf29a6438> capfd = <_pytest.capture.CaptureFixture object at 0xf29a40a8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2ae22f8> capfd = <_pytest.capture.CaptureFixture object at 0xf2aca228> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2886258> capfd = <_pytest.capture.CaptureFixture object at 0xf2891660> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf28902a8> capfd = <_pytest.capture.CaptureFixture object at 0xf2aefe58> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf491f258> capfd = <_pytest.capture.CaptureFixture object at 0xf492d648> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf28ea5c8> capfd = <_pytest.capture.CaptureFixture object at 0xf2a66b40> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf28ec488> capfd = <_pytest.capture.CaptureFixture object at 0xf2ce4d50> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf27c3ed8> capfd = <_pytest.capture.CaptureFixture object at 0xf2a73420> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf3509708> capfd = <_pytest.capture.CaptureFixture object at 0xf35bf798> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf27a41b8> capfd = <_pytest.capture.CaptureFixture object at 0xf4537be8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2788078> capfd = <_pytest.capture.CaptureFixture object at 0xf2a1d348> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf277c1b8> capfd = <_pytest.capture.CaptureFixture object at 0xf277eb10> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf26c61b8> capfd = <_pytest.capture.CaptureFixture object at 0xf26c1c78> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf29f3168> capfd = <_pytest.capture.CaptureFixture object at 0xf29c20c0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf3552078> capfd = <_pytest.capture.CaptureFixture object at 0xf26d6768> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf3579208> capfd = <_pytest.capture.CaptureFixture object at 0xf292d0a8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf290f398> capfd = <_pytest.capture.CaptureFixture object at 0xf29111f8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf25dcbb8> capfd = <_pytest.capture.CaptureFixture object at 0xf25f1960> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf256ded8> capfd = <_pytest.capture.CaptureFixture object at 0xf2552db0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf26a5028> capfd = <_pytest.capture.CaptureFixture object at 0xf3558810> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf26ab398> capfd = <_pytest.capture.CaptureFixture object at 0xf298e438> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf25027a8> capfd = <_pytest.capture.CaptureFixture object at 0xf3563300> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf25029d8> capfd = <_pytest.capture.CaptureFixture object at 0xf26bb4b0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2c6a028> capfd = <_pytest.capture.CaptureFixture object at 0xf2c5ebb8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf28229d8> capfd = <_pytest.capture.CaptureFixture object at 0xf281eed0> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf281c618> capfd = <_pytest.capture.CaptureFixture object at 0xf2480318> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2484938> capfd = <_pytest.capture.CaptureFixture object at 0xf2819a08> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf23b7ed8> capfd = <_pytest.capture.CaptureFixture object at 0xf23bde58> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2322ac8> capfd = <_pytest.capture.CaptureFixture object at 0xf23121f8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2c92d98> capfd = <_pytest.capture.CaptureFixture object at 0xf2368b40> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf235fb18> capfd = <_pytest.capture.CaptureFixture object at 0xf228e798> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf22bcd48> 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 0xf258fbb8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError __________________________ test_init_command_library ___________________________ project_no_init = pdm = .caller at 0xf23345c8> 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 0xf245f438> 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 0xf244e9d8> 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 0xf2240c58> 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 0xf24074d8> 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 0xf2415ed8> 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 0xf270be38> 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 0xf2713618> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf24d55c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf22df8e8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf21c5168> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf26555c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf221a348> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf22313e8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf285d2a8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf208c208> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1fab168> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1fb2f28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1fc9e88> 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/lib/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________________ test_sync_command _______________________________ project = pdm = .caller at 0xf20e3c58> 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/lib/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. __________________________ test_install_with_lockfile __________________________ project = pdm = .caller at 0xf2108758> @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 0xf2125e38> 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 0xf1ea8ed8> 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 0xf23ddb18> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf23d24d8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1f25a78> pdm = .caller at 0xf1f25ac8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1e517a8> 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/lib/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 0xf216e168> 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/lib/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 0xf1cf0528> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf26554d8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1cf9c08> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2043b18> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf2021b18> 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/lib/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_list_graph_command ____________________________ project = pdm = .caller at 0xf1da3618> 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/lib/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 0xf1d83578> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1c4b2f8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1bcd5c8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1cb8348> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1ca3ed8> 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 0xf1b0a1b8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1b042f8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1a76258> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1b56078> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1a07168> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1a19b18> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1e04898> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1e22988> 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 0xf1c23b68> 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 0xf1970398> 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 0xf1954d48> 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 0xf1f419d8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1dd3ac8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf198aa28> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf19a1898> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1d7cac8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1bad898> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf17cdb68> @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 0xf188da28> @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 0xf18612f8> @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/lib/python3.12/json/__init__.py:346: in loads return _default_decoder.decode(s) /usr/lib/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/lib/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 0xf17822f8> @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 0xf17a3b68> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf17a3938> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf219e848> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf182f9d8> 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/lib/python3.12/unittest/mock.py:940: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_lock_refresh[args0] ___________________________ pdm = .caller at 0xf1a8bac8> 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 0xf15dc9d8> 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 0xf15c5708> 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 0xf176ad98> 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 0xf1645f28> 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 0xf18f8988> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf18e7708> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf192b668>, 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf19e5528>, 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf172d8e8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1724758> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf160c618> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ______________________ test_lock_direct_minimal_versions _______________________ project = repository = pdm = .caller at 0xf16a2c58> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf15b6b18>, 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1463898> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf14499a8> lock_version = '4.1.0', expected = pdm = .caller at 0xf14768e8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf16c86a8> lock_version = '4.1.1', expected = pdm = .caller at 0xf16c3758> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1566078> lock_version = '4.1.2', expected = pdm = .caller at 0xf1553f78> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf157bf30> lock_version = '4.2', expected = pdm = .caller at 0xf1548e88> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf143dca8> lock_version = '3.0', expected = pdm = .caller at 0xf1408a78> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1280030> lock_version = '4.0.1', expected = pdm = .caller at 0xf12b6a28> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_lock_default_inherit_metadata ______________________ project = pdm = .caller at 0xf12b5ca8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf14f69d8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf1483b68> 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 0xf1309f28> 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 0xf15c5a28> 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 0xf1309de8> 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 0xf1303d98> def test_info_command_json(project, pdm): > result = pdm(["info", "--json"], obj=project, strict=True) tests/cli/test_others.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________________ test_info_global_project ___________________________ pdm = .caller at 0xf149bf28> 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 0xf13af8e8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_global_project_other_location ______________________ pdm = .caller at 0xf1192708> 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 0xf1191e88> 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 0xf10669d8> 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 0xf126fc08>, 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 0xf11486b8>, 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 0xf116dde8> 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 0xf1129de8> 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 0xf12ea9d8> 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 0xf12d7ca8> fixture_project = .func at 0xf12d7f78> 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 0xf1518c08> fixture_project = .func at 0xf1518d48> 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 0xf10c6898> 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 0xf11d3c58> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf11db3e8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf11d1e88> pdm = .caller at 0xf1094078> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_remove_command ______________________________ project = pdm = .caller at 0xf0e7ce88> 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/lib/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 0xf0e5a848> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0e45e38> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0f07848> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0d08b68> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0d67758> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0d63b68> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0f67758> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0e0ee38> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf10b9668> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0e0c618> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0ef8cf8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0ef9e88> 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 0xf1002bb8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _________________________ test_run_with_site_packages __________________________ project = pdm = .caller at 0xf0e87a28> 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 0xf0eb2e88> 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 0xf0d94bb8> 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 0xf0c46ed8> 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 0xf0c7ab68> capfd = <_pytest.capture.CaptureFixture object at 0xf0bc2f78> 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 0xf0c3ce88> 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 0xf0c1d668> capfd = <_pytest.capture.CaptureFixture object at 0xf0c04f60> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0b84e88> 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 0xf0b86b68>, 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 0xf0f8ccf8>, 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 0xf0ce49d8>, 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 0xf0fdb668>, 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 0xf0fd7cf8> 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 0xf0c97b18> capfd = <_pytest.capture.CaptureFixture object at 0xf0caf390> 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 0xf0901668> capfd = <_pytest.capture.CaptureFixture object at 0xf0fefcc0> 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 0xf0b05f78> capfd = <_pytest.capture.CaptureFixture object at 0xf0b28fd8> 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 0xf0b304d8> capfd = <_pytest.capture.CaptureFixture object at 0xf0b0d1c8> 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 0xf09abca8> capfd = <_pytest.capture.CaptureFixture object at 0xf09a1ff0> 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 0xf0a55848> capfd = <_pytest.capture.CaptureFixture object at 0xf0a579c0> 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 0xf0a5ff28> capfd = <_pytest.capture.CaptureFixture object at 0xf0a6d1c8> 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 0xf08dca28> capfd = <_pytest.capture.CaptureFixture object at 0xf08c0db0> 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 0xf0b4bc08> capfd = <_pytest.capture.CaptureFixture object at 0xf08c0840> 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 0xf0ab56b8> 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 0xf0ad8ed8> capfd = <_pytest.capture.CaptureFixture object at 0xf0ad2ff0> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf0afce10> 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 0xf0acdf28> capfd = <_pytest.capture.CaptureFixture object at 0xf0af5fc0> 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 0xf0a209d8> capfd = <_pytest.capture.CaptureFixture object at 0xf0a1c8d0> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf0a1c4b0> 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 0xf0974758> capfd = <_pytest.capture.CaptureFixture object at 0xf0af7120> 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 0xf0959f28> 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 0xf0959e38> 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 0xf07e18e8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf07b63e8> capfd = <_pytest.capture.CaptureFixture object at 0xf07e66d8> 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 0xf07a2e88> capfd = <_pytest.capture.CaptureFixture object at 0xf079ac78> 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 0xf07a4618> capfd = <_pytest.capture.CaptureFixture object at 0xf082eed0> 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 0xf087acf8> capfd = <_pytest.capture.CaptureFixture object at 0xf087efa8> 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 0xf0843758> capfd = <_pytest.capture.CaptureFixture object at 0xf08684e0>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf08ac7a8> capfd = <_pytest.capture.CaptureFixture object at 0xf08a6fc0> 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 0xf0526d48> capfd = <_pytest.capture.CaptureFixture object at 0xf051dfd8>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf051aa78> capfd = <_pytest.capture.CaptureFixture object at 0xf048deb8>, _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 0xf051ab68> capfd = <_pytest.capture.CaptureFixture object at 0xf0495ff0>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0db7d48> capfd = <_pytest.capture.CaptureFixture object at 0xf051d2e8>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________ test_composite_can_pass_parameters ______________________ project = pdm = .caller at 0xf03aad48> capfd = <_pytest.capture.CaptureFixture object at 0xf09d5690>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf03bbf28> capfd = <_pytest.capture.CaptureFixture object at 0xf0b0d4b0>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0408e38> capfd = <_pytest.capture.CaptureFixture object at 0xf14a05d0>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf04d4ca8> capfd = <_pytest.capture.CaptureFixture object at 0xf113a5e8>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf04e9bb8> capfd = <_pytest.capture.CaptureFixture object at 0xf0f7fb70>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_composite_hooks_inherit_env _______________________ project = pdm = .caller at 0xf04e9cf8> capfd = <_pytest.capture.CaptureFixture object at 0xf05d5eb8>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf054c6b8> capfd = <_pytest.capture.CaptureFixture object at 0xf056cdc8>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________ test_composite_inherit_dotfile ________________________ project = pdm = .caller at 0xf05697a8> capfd = <_pytest.capture.CaptureFixture object at 0xf054af60>, _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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_composite_can_have_commands _______________________ project = pdm = .caller at 0xf069e618> capfd = <_pytest.capture.CaptureFixture object at 0xf06aef90> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ______________________________ test_run_shortcut _______________________________ project = pdm = .caller at 0xf0468848> capfd = <_pytest.capture.CaptureFixture object at 0xf0443f60> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0463f28> capfd = <_pytest.capture.CaptureFixture object at 0xf062c9d8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf063af28> 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 0xf05a2d48>, 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 0xf01e1c08>, 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 0xf01f5ed8> 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 0xf0752f28> @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 0xf022dcf8> @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 0xf021cca8> 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 0xf02d67f8> mock_pip = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xf04a4828> 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 0xf02cbf78> 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 0xf0265f28> 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 0xf0154bb8> 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 0xf03607a8> 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 0xf072da78> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0700f28> 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/lib/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 0xf0339708> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0048848>, 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0047758>, 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xeffb9848> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xeffde7a8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xeff608e8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xeff4a758> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0010848> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0022758> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xeff3f848> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf01b26b8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf02bbde8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0350b68> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf06ef118> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xf0196078> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xefe2f528> 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 0xefda27a8> 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 0xf0661cf8> def test_use_venv_python(project, pdm): > pdm(["venv", "create"], obj=project, strict=True) tests/cli/test_use.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .run_venv/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_help_with_unknown_arguments _______________________ pdm = .caller at 0xf0671b18> 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 0xefece5c8> 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 0xefd06cf8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________ test_venv_create_other_location ________________________ pdm = .caller at 0xefcabed8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _____________________________ test_venv_show_path ______________________________ pdm = .caller at 0xefdf3f28> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ________________________________ test_venv_list ________________________________ pdm = .caller at 0xefcbec08> 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 0xf010e8e8> 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 0xf00bc438> 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 0xefcf1ca8> 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 0xefcf1e38> 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 0xefd517f8> 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 0xefb344d8> 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 0xefbaaf28> 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 0xefba2d48> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/python3.12/argparse.py:1943: TypeError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. ___________________ test_venv_activate_no_shell[virtualenv] ____________________ pdm = .caller at 0xefe7d988> 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 0xf00ee348> 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 0xefbdbde8> 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/lib/python3.12/unittest/mock.py:928: AssertionError ---------------------------- Captured stdout setup ----------------------------- Changes are written to pyproject.toml. _______________________________ test_venv_purge ________________________________ pdm = .caller at 0xef9fc9d8> 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 0xef90a4d8> 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 0xef920bb8>, 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 0xef95bf78>, 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 0xefb40488>, 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 0xefb5aed8>, 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 0xefc7eb68>, 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 0xefc307a8>, 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 0xef9b1708> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xefaaf9d8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xefa8ee38> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xef6c79d8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xeebc1898> supports_link = .mocked_support at 0xeebc1a28> @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 0xeecd10c8> supports_link = .mocked_support at 0xeecd1758> @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 0xeed86938> supports_link = .mocked_support at 0xeed866b8> @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 0xeed19ca8> 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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xef11cca8> 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 0xeed62578> 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 0xef3517f8> 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 0xef11c0c8> 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 0xef369b18> project = core = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0xeeff96d8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 0xef7c1438> 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 0xef81e4d8> 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 0xefaf4e38> 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 0xf00cf078> 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 0xef6c7bb8> 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 0xeeef8578> 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 0xeee2fb68> 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 0xeef39488> 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 0xef283c08> 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 0xef283b68> 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 0xef23ced8> 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 0xef244528> 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 0xeed97258> 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 0xeee9ae38> 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 0xeed04488> 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 0xeed007f8> @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/lib/python3/site-packages/pdm/core.py:185: in main options = self.parser.parse_args(args) /usr/lib/python3.12/argparse.py:1904: in parse_args args, argv = self.parse_known_args(args, namespace) .run_venv/lib/python3/site-packages/pdm/cli/utils.py:157: in parse_known_args args, argv = super().parse_known_args(args, namespace) /usr/lib/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/lib/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 88.09s (0:01:28) = 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.9599 (%check) RPM build errors: Bad exit status from /usr/src/tmp/rpm-tmp.9599 (%check) Command exited with non-zero status 1 86.99user 5.56system 1:33.91elapsed 98%CPU (0avgtext+0avgdata 135480maxresident)k 0inputs+0outputs (0major+750164minor)pagefaults 0swaps hsh-rebuild: rebuild of `python3-module-pdm-2.11.2-alt1.src.rpm' failed. Command exited with non-zero status 1 6.22user 2.78system 1:52.24elapsed 8%CPU (0avgtext+0avgdata 132124maxresident)k 2544inputs+0outputs (0major+336665minor)pagefaults 0swaps