Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setuptools Issues in Python 3.12 #9004

Closed
4 tasks done
ChristopherHammond13 opened this issue Feb 23, 2024 · 5 comments
Closed
4 tasks done

setuptools Issues in Python 3.12 #9004

ChristopherHammond13 opened this issue Feb 23, 2024 · 5 comments
Labels
kind/bug Something isn't working as expected

Comments

@ChristopherHammond13
Copy link

ChristopherHammond13 commented Feb 23, 2024

  • Poetry version: 1.7.1

  • Python version:3.11.7

  • OS version and name: macOS 14.3.1

  • pyproject.toml: https://github.com/CrowdStrike/Falcon-Toolkit/pull/113/files

  • I am on the latest stable Poetry version, installed using a recommended method.

  • I have searched the issues of this repo and believe that this is not a duplicate.

  • I have consulted the FAQ and blog for any relevant entries or release notes.

  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option) and have included the output below.

Issue

Hey everyone! Thank you so much first of all for the incredible work this project team does. Poetry is simply awesome.

I have an issue but I'm not sure if it falls under expected behaviour or not. I'm trying to migrate some of my OSS work to support Python 3.12, which obviously doesn't include setuptools and wheel by default (discussed in #7611, pypa/virtualenv#2487, etc.). However, I seem to be meeting dependency hell even in some cases where I inject setuptools directly into the venv. I am using venvs based on Python 3.12 to test (installed from Homebrew). The common thread seems to be packages expecting distutils (which obviously is provided by setuptools now), but it seems I'm meeting cases where even pre-seeding setuptools isn't working.

What's key about the output from poetry update -vvv below is that I've already run the following commands to try to force setuptools and wheel into the venv and get an updated pip:

  • poetry run pip install -U setuptools
  • poetry run pip install -U wheel
  • poetry run pip install -U pip

For one of the libraries I built that the tool linked to depends on, I was able to fix build issues by pre-seeding the build environment with setuptools, but this doesn't seem to be working for this dependency chain:
https://github.com/CrowdStrike/caracara/blob/main/.github/workflows/code-quality.yml#L29

I've tried adding setuptools (and wheel for Falcon-Toolkit) into the build-system.requires part of the pyproject.toml, but it seems that that section is ignored by Poetry as per #8752, #4871 and others.

I'd appreciate any insight you can provide here! My inclination is that Poetry is doing something funky with the build environment that is somehow hiding setuptools (perhaps something to do with #5401?), but it's also entirely possible that I've missed something obvious here? I guess the other option might be to inject setuptools and wheel back into the venv for Poetry itself, but this feels anti-spec...(and the venv hosting Poetry on my system runs on 3.11 anyway so I doubt this would even be necessary).

Thanks in advance!

Loading configuration file /Users/chammond/Library/Preferences/pypoetry/auth.toml
Using virtualenv: /Users/chammond/dev/Falcon-Toolkit/.venv
Updating dependencies
Resolving dependencies...
   1: fact: falcon-toolkit is 3.3.1
   1: derived: falcon-toolkit
   1: fact: falcon-toolkit depends on caracara (^0.6.0)
   1: fact: falcon-toolkit depends on click (^8.1.3)
   1: fact: falcon-toolkit depends on click-option-group (^0.5.6)
   1: fact: falcon-toolkit depends on click-spinner (^0.1.10)
   1: fact: falcon-toolkit depends on cmd2 (^2.4)
   1: fact: falcon-toolkit depends on colorama (^0.4.5)
   1: fact: falcon-toolkit depends on keyring (^24.0)
   1: fact: falcon-toolkit depends on pick (^2.2.0)
   1: fact: falcon-toolkit depends on platformdirs (^4.2.0)
   1: fact: falcon-toolkit depends on tabulate (^0.9.0)
   1: fact: falcon-toolkit depends on prompt-toolkit (^3.0.43)
   1: fact: falcon-toolkit depends on setuptools (^69.0)
   1: fact: falcon-toolkit depends on flake8 (^6.0.0)
   1: fact: falcon-toolkit depends on pylint (>=2.15.4,<4.0.0)
   1: fact: falcon-toolkit depends on pytest (^7.0.1)
   1: fact: falcon-toolkit depends on pydocstyle (^6.1.1)
   1: fact: falcon-toolkit depends on toml (^0.10.2)
   1: selecting falcon-toolkit (3.3.1)
   1: derived: toml (>=0.10.2,<0.11.0)
   1: derived: pydocstyle (>=6.1.1,<7.0.0)
   1: derived: pytest (>=7.0.1,<8.0.0)
   1: derived: pylint (>=2.15.4,<4.0.0)
   1: derived: flake8 (>=6.0.0,<7.0.0)
   1: derived: setuptools (>=69.0,<70.0)
   1: derived: prompt-toolkit (>=3.0.43,<4.0.0)
   1: derived: tabulate (>=0.9.0,<0.10.0)
   1: derived: platformdirs (>=4.2.0,<5.0.0)
   1: derived: pick (>=2.2.0,<3.0.0)
   1: derived: keyring (>=24.0,<25.0)
   1: derived: colorama (>=0.4.5,<0.5.0)
   1: derived: cmd2 (>=2.4,<3.0)
   1: derived: click-spinner (>=0.1.10,<0.2.0)
   1: derived: click-option-group (>=0.5.6,<0.6.0)
   1: derived: click (>=8.1.3,<9.0.0)
   1: derived: caracara (>=0.6.0,<0.7.0)
[keyring.backend] Loading KWallet
[keyring.backend] Loading SecretService
[keyring.backend] Loading Windows
[keyring.backend] Loading chainer
[keyring.backend] Loading libsecret
[keyring.backend] Loading macOS
Creating new session for pypi.org
Source (PyPI): 1 packages found for toml >=0.10.2,<0.11.0
Source (PyPI): 6 packages found for pydocstyle >=6.1.1,<7.0.0
Source (PyPI): 16 packages found for pytest >=7.0.1,<8.0.0
Source (PyPI): 24 packages found for pylint >=2.15.4,<4.0.0
Source (PyPI): 2 packages found for flake8 >=6.0.0,<7.0.0
Source (PyPI): 6 packages found for setuptools >=69.0,<70.0
Source (PyPI): 1 packages found for prompt-toolkit >=3.0.43,<4.0.0
Source (PyPI): 1 packages found for tabulate >=0.9.0,<0.10.0
Source (PyPI): 1 packages found for platformdirs >=4.2.0,<5.0.0
Source (PyPI): 1 packages found for pick >=2.2.0,<3.0.0
Source (PyPI): 6 packages found for keyring >=24.0,<25.0
Source (PyPI): 2 packages found for colorama >=0.4.5,<0.5.0
Skipping url (https://files.pythonhosted.org/packages/0a/2f/6e9ada06a4f3d9be6b19380a5ab0aa2a14bdfdd00438a790d921561d7000/cmd2-0.6.0.py3.tar.gz) due to invalid version (None)
Source (PyPI): 4 packages found for cmd2 >=2.4,<3.0
Source (PyPI): 1 packages found for click-spinner >=0.1.10,<0.2.0
Source (PyPI): 1 packages found for click-option-group >=0.5.6,<0.6.0
Source (PyPI): 5 packages found for click >=8.1.3,<9.0.0
Source (PyPI): 1 packages found for caracara >=0.6.0,<0.7.0
   1: selecting toml (0.10.2)
   1: fact: prompt-toolkit (3.0.43) depends on wcwidth (*)
   1: selecting prompt-toolkit (3.0.43)
   1: derived: wcwidth
Source (PyPI): 25 packages found for wcwidth *
   1: selecting tabulate (0.9.0)
   1: selecting platformdirs (4.2.0)
   1: fact: pick (2.2.0) depends on windows-curses (>=2.2.0,<3.0.0)
   1: selecting pick (2.2.0)
   1: derived: windows-curses (>=2.2.0,<3.0.0)
Source (PyPI): 4 packages found for windows-curses >=2.2.0,<3.0.0
   1: selecting click-spinner (0.1.10)
   1: fact: click-option-group (0.5.6) depends on Click (>=7.0,<9)
   1: selecting click-option-group (0.5.6)
   1: fact: caracara (0.6.0) depends on py7zr (>=0.20,<0.21)
   1: fact: caracara (0.6.0) depends on crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: fact: caracara (0.6.0) depends on caracara-filters (>=0.2,<0.3)
   1: fact: caracara (0.6.0) depends on setuptools (>=69.0,<70.0)
   1: selecting caracara (0.6.0)
   1: derived: caracara-filters (>=0.2,<0.3)
   1: derived: crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: derived: py7zr (>=0.20,<0.21)
Source (PyPI): 1 packages found for caracara-filters >=0.2,<0.3
Source (PyPI): 2 packages found for crowdstrike-falconpy >=1.4.0,<2.0.0
Source (PyPI): 7 packages found for py7zr >=0.20,<0.21
   1: selecting caracara-filters (0.2.0)
   1: selecting wcwidth (0.2.13)
   0: Duplicate dependencies for dill
   0: Different requirements found for dill (>=0.2) with markers python_version < "3.11", dill (>=0.3.7) with markers python_version >= "3.12" and dill (>=0.3.6) with markers python_version >= "3.11" and python_version < "3.12".
   1: Version solving took 0.280 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('pylint', '3.0.3'): {'dill': <Dependency dill (>=0.2)>}}).
   1: fact: falcon-toolkit is 3.3.1
   1: derived: falcon-toolkit
   1: fact: falcon-toolkit depends on caracara (^0.6.0)
   1: fact: falcon-toolkit depends on click (^8.1.3)
   1: fact: falcon-toolkit depends on click-option-group (^0.5.6)
   1: fact: falcon-toolkit depends on click-spinner (^0.1.10)
   1: fact: falcon-toolkit depends on cmd2 (^2.4)
   1: fact: falcon-toolkit depends on colorama (^0.4.5)
   1: fact: falcon-toolkit depends on keyring (^24.0)
   1: fact: falcon-toolkit depends on pick (^2.2.0)
   1: fact: falcon-toolkit depends on platformdirs (^4.2.0)
   1: fact: falcon-toolkit depends on tabulate (^0.9.0)
   1: fact: falcon-toolkit depends on prompt-toolkit (^3.0.43)
   1: fact: falcon-toolkit depends on setuptools (^69.0)
   1: fact: falcon-toolkit depends on flake8 (^6.0.0)
   1: fact: falcon-toolkit depends on pylint (>=2.15.4,<4.0.0)
   1: fact: falcon-toolkit depends on pytest (^7.0.1)
   1: fact: falcon-toolkit depends on pydocstyle (^6.1.1)
   1: fact: falcon-toolkit depends on toml (^0.10.2)
   1: selecting falcon-toolkit (3.3.1)
   1: derived: toml (>=0.10.2,<0.11.0)
   1: derived: pydocstyle (>=6.1.1,<7.0.0)
   1: derived: pytest (>=7.0.1,<8.0.0)
   1: derived: pylint (>=2.15.4,<4.0.0)
   1: derived: flake8 (>=6.0.0,<7.0.0)
   1: derived: setuptools (>=69.0,<70.0)
   1: derived: prompt-toolkit (>=3.0.43,<4.0.0)
   1: derived: tabulate (>=0.9.0,<0.10.0)
   1: derived: platformdirs (>=4.2.0,<5.0.0)
   1: derived: pick (>=2.2.0,<3.0.0)
   1: derived: keyring (>=24.0,<25.0)
   1: derived: colorama (>=0.4.5,<0.5.0)
   1: derived: cmd2 (>=2.4,<3.0)
   1: derived: click-spinner (>=0.1.10,<0.2.0)
   1: derived: click-option-group (>=0.5.6,<0.6.0)
   1: derived: click (>=8.1.3,<9.0.0)
   1: derived: caracara (>=0.6.0,<0.7.0)
Source (PyPI): 1 packages found for toml >=0.10.2,<0.11.0
Source (PyPI): 6 packages found for pydocstyle >=6.1.1,<7.0.0
Source (PyPI): 16 packages found for pytest >=7.0.1,<8.0.0
Source (PyPI): 24 packages found for pylint >=2.15.4,<4.0.0
Source (PyPI): 2 packages found for flake8 >=6.0.0,<7.0.0
Source (PyPI): 6 packages found for setuptools >=69.0,<70.0
Source (PyPI): 1 packages found for prompt-toolkit >=3.0.43,<4.0.0
Source (PyPI): 1 packages found for tabulate >=0.9.0,<0.10.0
Source (PyPI): 1 packages found for platformdirs >=4.2.0,<5.0.0
Source (PyPI): 1 packages found for pick >=2.2.0,<3.0.0
Source (PyPI): 6 packages found for keyring >=24.0,<25.0
Source (PyPI): 2 packages found for colorama >=0.4.5,<0.5.0
Source (PyPI): 4 packages found for cmd2 >=2.4,<3.0
Source (PyPI): 1 packages found for click-spinner >=0.1.10,<0.2.0
Source (PyPI): 1 packages found for click-option-group >=0.5.6,<0.6.0
Source (PyPI): 5 packages found for click >=8.1.3,<9.0.0
Source (PyPI): 1 packages found for caracara >=0.6.0,<0.7.0
   1: selecting toml (0.10.2)
   1: fact: prompt-toolkit (3.0.43) depends on wcwidth (*)
   1: selecting prompt-toolkit (3.0.43)
   1: derived: wcwidth
Source (PyPI): 25 packages found for wcwidth *
   1: selecting tabulate (0.9.0)
   1: selecting platformdirs (4.2.0)
   1: fact: pick (2.2.0) depends on windows-curses (>=2.2.0,<3.0.0)
   1: selecting pick (2.2.0)
   1: derived: windows-curses (>=2.2.0,<3.0.0)
Source (PyPI): 4 packages found for windows-curses >=2.2.0,<3.0.0
   1: selecting click-spinner (0.1.10)
   1: fact: click-option-group (0.5.6) depends on Click (>=7.0,<9)
   1: selecting click-option-group (0.5.6)
   1: fact: caracara (0.6.0) depends on py7zr (>=0.20,<0.21)
   1: fact: caracara (0.6.0) depends on crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: fact: caracara (0.6.0) depends on caracara-filters (>=0.2,<0.3)
   1: fact: caracara (0.6.0) depends on setuptools (>=69.0,<70.0)
   1: selecting caracara (0.6.0)
   1: derived: caracara-filters (>=0.2,<0.3)
   1: derived: crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: derived: py7zr (>=0.20,<0.21)
Source (PyPI): 1 packages found for caracara-filters >=0.2,<0.3
Source (PyPI): 2 packages found for crowdstrike-falconpy >=1.4.0,<2.0.0
Source (PyPI): 7 packages found for py7zr >=0.20,<0.21
   1: selecting caracara-filters (0.2.0)
   1: selecting wcwidth (0.2.13)
   1: fact: pylint (3.0.3) depends on platformdirs (>=2.2.0)
   1: fact: pylint (3.0.3) depends on astroid (>=3.0.1,<=3.1.0-dev0)
   1: fact: pylint (3.0.3) depends on isort (>=4.2.5,<5.13.0 || >5.13.0,<6)
   1: fact: pylint (3.0.3) depends on mccabe (>=0.6,<0.8)
   1: fact: pylint (3.0.3) depends on tomlkit (>=0.10.1)
   1: fact: pylint (3.0.3) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (3.0.3) depends on dill (>=0.2)
   1: fact: pylint (3.0.3) depends on tomli (>=1.1.0)
   1: fact: pylint (3.0.3) depends on colorama (>=0.4.5)
   1: selecting pylint (3.0.3)
   1: derived: tomli (>=1.1.0)
   1: derived: dill (>=0.2)
   1: derived: typing-extensions (>=3.10.0)
   1: derived: tomlkit (>=0.10.1)
   1: derived: mccabe (>=0.6,<0.8)
   1: derived: isort (>=4.2.5,!=5.13.0,<6)
   1: derived: astroid (>=3.0.1,<=3.1.0-dev0)
Source (PyPI): 7 packages found for tomli >=1.1.0
Source (PyPI): 24 packages found for dill >=0.2
Source (PyPI): 19 packages found for typing-extensions >=3.10.0
Source (PyPI): 15 packages found for tomlkit >=0.10.1
Source (PyPI): 3 packages found for mccabe >=0.6,<0.8
Source (PyPI): 82 packages found for isort >=4.2.5,<5.13.0 || >5.13.0,<6
Source (PyPI): 3 packages found for astroid >=3.0.1,<=3.1.0-dev0
   1: selecting isort (5.13.2)
   1: fact: pytest (7.4.4) depends on iniconfig (*)
   1: fact: pytest (7.4.4) depends on packaging (*)
   1: fact: pytest (7.4.4) depends on pluggy (>=0.12,<2.0)
   1: fact: pytest (7.4.4) depends on exceptiongroup (>=1.0.0rc8)
   1: fact: pytest (7.4.4) depends on tomli (>=1.0.0)
   1: fact: pytest (7.4.4) depends on colorama (*)
   1: selecting pytest (7.4.4)
   1: derived: exceptiongroup (>=1.0.0rc8)
   1: derived: pluggy (>=0.12,<2.0)
   1: derived: packaging
   1: derived: iniconfig
Source (PyPI): 10 packages found for exceptiongroup >=1.0.0rc8
Source (PyPI): 7 packages found for pluggy >=0.12,<2.0
Source (PyPI): 42 packages found for packaging *
Source (PyPI): 6 packages found for iniconfig *
   1: selecting packaging (23.2)
   1: selecting tomlkit (0.12.3)
   1: fact: py7zr (0.20.8) depends on texttable (*)
   1: fact: py7zr (0.20.8) depends on pycryptodomex (>=3.16.0)
   1: fact: py7zr (0.20.8) depends on pyzstd (>=0.15.9)
   1: fact: py7zr (0.20.8) depends on pyppmd (>=1.1.0,<1.2.0)
   1: fact: py7zr (0.20.8) depends on pybcj (>=1.0.0,<1.1.0)
   1: fact: py7zr (0.20.8) depends on multivolumefile (>=0.2.3)
   1: fact: py7zr (0.20.8) depends on inflate64 (>=1.0.0,<1.1.0)
   1: fact: py7zr (0.20.8) depends on brotli (>=1.1.0)
   1: fact: py7zr (0.20.8) depends on brotlicffi (>=1.1.0.0)
   1: fact: py7zr (0.20.8) depends on psutil (*)
   1: selecting py7zr (0.20.8)
   1: derived: psutil
   1: derived: brotlicffi (>=1.1.0.0)
   1: derived: brotli (>=1.1.0)
   1: derived: inflate64 (>=1.0.0,<1.1.0)
   1: derived: multivolumefile (>=0.2.3)
   1: derived: pybcj (>=1.0.0,<1.1.0)
   1: derived: pyppmd (>=1.1.0,<1.2.0)
   1: derived: pyzstd (>=0.15.9)
   1: derived: pycryptodomex (>=3.16.0)
   1: derived: texttable
Source (PyPI): 91 packages found for psutil *
Source (PyPI): 1 packages found for brotlicffi >=1.1.0.0
Source (PyPI): 1 packages found for brotli >=1.1.0
Source (PyPI): 1 packages found for inflate64 >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for multivolumefile >=0.2.3
Source (PyPI): 3 packages found for pybcj >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for pyppmd >=1.1.0,<1.2.0
Source (PyPI): 1 packages found for pyzstd >=0.15.9
Source (PyPI): 6 packages found for pycryptodomex >=3.16.0
Source (PyPI): 26 packages found for texttable *
   1: selecting inflate64 (1.0.0)
   1: selecting multivolumefile (0.2.3)
   1: selecting pyppmd (1.1.0)
   1: selecting pyzstd (0.15.9)
   1: selecting texttable (1.7.0)
   1: selecting pluggy (1.4.0)
   1: fact: pydocstyle (6.3.0) depends on snowballstemmer (>=2.2.0)
   1: selecting pydocstyle (6.3.0)
   1: derived: snowballstemmer (>=2.2.0)
Source (PyPI): 1 packages found for snowballstemmer >=2.2.0
   1: selecting snowballstemmer (2.2.0)
   1: selecting setuptools (69.1.1)
   1: fact: keyring (24.3.0) depends on jaraco.classes (*)
   1: fact: keyring (24.3.0) depends on importlib-metadata (>=4.11.4)
   1: fact: keyring (24.3.0) depends on SecretStorage (>=3.2)
   1: fact: keyring (24.3.0) depends on jeepney (>=0.4.2)
   1: fact: keyring (24.3.0) depends on pywin32-ctypes (>=0.2.0)
   1: selecting keyring (24.3.0)
   1: derived: pywin32-ctypes (>=0.2.0)
   1: derived: jeepney (>=0.4.2)
   1: derived: SecretStorage (>=3.2)
   1: derived: importlib-metadata (>=4.11.4)
   1: derived: jaraco.classes
Source (PyPI): 3 packages found for pywin32-ctypes >=0.2.0
Source (PyPI): 7 packages found for jeepney >=0.4.2
Source (PyPI): 5 packages found for secretstorage >=3.2
Source (PyPI): 24 packages found for importlib-metadata >=4.11.4
Source (PyPI): 19 packages found for jaraco-classes *
   1: fact: jaraco-classes (3.3.1) depends on more-itertools (*)
   1: selecting jaraco-classes (3.3.1)
   1: derived: more-itertools
Source (PyPI): 44 packages found for more-itertools *
   1: selecting more-itertools (10.2.0)
   1: selecting iniconfig (2.0.0)
   1: selecting pycryptodomex (3.20.0)
   1: fact: click (8.1.7) depends on colorama (*)
   1: selecting click (8.1.7)
   1: fact: cmd2 (2.4.3) depends on attrs (>=16.3.0)
   1: fact: cmd2 (2.4.3) depends on pyperclip (>=1.6)
   1: fact: cmd2 (2.4.3) depends on wcwidth (>=0.1.7)
   1: fact: cmd2 (2.4.3) depends on pyreadline3 (*)
   1: selecting cmd2 (2.4.3)
   1: derived: pyreadline3
   1: derived: pyperclip (>=1.6)
   1: derived: attrs (>=16.3.0)
Source (PyPI): 6 packages found for pyreadline3 *
Source (PyPI): 10 packages found for pyperclip >=1.6
Source (PyPI): 20 packages found for attrs >=16.3.0
   1: selecting attrs (23.2.0)
   1: selecting pyperclip (1.8.2)
   1: selecting mccabe (0.7.0)
   1: fact: astroid (3.0.3) depends on typing-extensions (>=4.0.0)
   1: selecting astroid (3.0.3)
   1: derived: typing-extensions (>=4.0.0)
   1: selecting pybcj (1.0.2)
   1: fact: flake8 (6.1.0) depends on mccabe (>=0.7.0,<0.8.0)
   1: fact: flake8 (6.1.0) depends on pycodestyle (>=2.11.0,<2.12.0)
   1: fact: flake8 (6.1.0) depends on pyflakes (>=3.1.0,<3.2.0)
   1: selecting flake8 (6.1.0)
   1: derived: pyflakes (>=3.1.0,<3.2.0)
   1: derived: pycodestyle (>=2.11.0,<2.12.0)
Source (PyPI): 1 packages found for pyflakes >=3.1.0,<3.2.0
Source (PyPI): 2 packages found for pycodestyle >=2.11.0,<2.12.0
   1: selecting pyflakes (3.1.0)
   1: selecting colorama (0.4.6)
   1: fact: crowdstrike-falconpy (1.4.1) depends on requests (*)
   1: fact: crowdstrike-falconpy (1.4.1) depends on urllib3 (*)
   1: selecting crowdstrike-falconpy (1.4.1)
   1: derived: urllib3
   1: derived: requests
Source (PyPI): 84 packages found for urllib3 *
Source (PyPI): 148 packages found for requests *
   1: fact: requests (2.31.0) depends on charset-normalizer (>=2,<4)
   1: fact: requests (2.31.0) depends on idna (>=2.5,<4)
   1: fact: requests (2.31.0) depends on urllib3 (>=1.21.1,<3)
   1: fact: requests (2.31.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.31.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<3)
   1: derived: idna (>=2.5,<4)
   1: derived: charset-normalizer (>=2,<4)
Source (PyPI): 33 packages found for certifi >=2017.4.17
Source (PyPI): 13 packages found for idna >=2.5,<4
Source (PyPI): 22 packages found for charset-normalizer >=2,<4
   1: selecting urllib3 (2.2.1)
   1: selecting certifi (2024.2.2)
   1: selecting charset-normalizer (3.3.2)
   1: selecting idna (3.6)
   1: selecting pycodestyle (2.11.1)
   1: fact: brotlicffi (1.1.0.0) depends on cffi (>=1.0.0)
   1: selecting brotlicffi (1.1.0.0)
   1: derived: cffi (>=1.0.0)
Source (PyPI): 47 packages found for cffi >=1.0.0
   1: fact: cffi (1.16.0) depends on pycparser (*)
   1: selecting cffi (1.16.0)
   1: derived: pycparser
Source (PyPI): 21 packages found for pycparser *
   1: selecting pycparser (2.21)
   1: selecting brotli (1.1.0)
   1: selecting psutil (5.9.8)
   1: selecting dill (0.3.8)
   1: fact: importlib-metadata (7.0.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (7.0.1)
   1: derived: zipp (>=0.5)
Source (PyPI): 41 packages found for zipp >=0.5
   1: selecting zipp (3.17.0)
   1: selecting typing-extensions (4.9.0)
   1: selecting exceptiongroup (1.2.0)
   1: selecting tomli (2.0.1)
   1: selecting jeepney (0.8.0)
   1: selecting pyreadline3 (3.4.1)
   1: fact: secretstorage (3.3.3) depends on cryptography (>=2.0)
   1: fact: secretstorage (3.3.3) depends on jeepney (>=0.6)
   1: selecting secretstorage (3.3.3)
   1: derived: cryptography (>=2.0)
Source (PyPI): 73 packages found for cryptography >=2.0
   1: fact: cryptography (42.0.4) depends on cffi (>=1.12)
   1: selecting cryptography (42.0.4)
   1: selecting windows-curses (2.3.2)
   1: selecting pywin32-ctypes (0.2.2)
   1: Version solving took 0.766 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('pylint', '3.0.3'): {'dill': <Dependency dill (>=0.3.7)>}}).
   1: fact: falcon-toolkit is 3.3.1
   1: derived: falcon-toolkit
   1: fact: falcon-toolkit depends on caracara (^0.6.0)
   1: fact: falcon-toolkit depends on click (^8.1.3)
   1: fact: falcon-toolkit depends on click-option-group (^0.5.6)
   1: fact: falcon-toolkit depends on click-spinner (^0.1.10)
   1: fact: falcon-toolkit depends on cmd2 (^2.4)
   1: fact: falcon-toolkit depends on colorama (^0.4.5)
   1: fact: falcon-toolkit depends on keyring (^24.0)
   1: fact: falcon-toolkit depends on pick (^2.2.0)
   1: fact: falcon-toolkit depends on platformdirs (^4.2.0)
   1: fact: falcon-toolkit depends on tabulate (^0.9.0)
   1: fact: falcon-toolkit depends on prompt-toolkit (^3.0.43)
   1: fact: falcon-toolkit depends on setuptools (^69.0)
   1: fact: falcon-toolkit depends on flake8 (^6.0.0)
   1: fact: falcon-toolkit depends on pylint (>=2.15.4,<4.0.0)
   1: fact: falcon-toolkit depends on pytest (^7.0.1)
   1: fact: falcon-toolkit depends on pydocstyle (^6.1.1)
   1: fact: falcon-toolkit depends on toml (^0.10.2)
   1: selecting falcon-toolkit (3.3.1)
   1: derived: toml (>=0.10.2,<0.11.0)
   1: derived: pydocstyle (>=6.1.1,<7.0.0)
   1: derived: pytest (>=7.0.1,<8.0.0)
   1: derived: pylint (>=2.15.4,<4.0.0)
   1: derived: flake8 (>=6.0.0,<7.0.0)
   1: derived: setuptools (>=69.0,<70.0)
   1: derived: prompt-toolkit (>=3.0.43,<4.0.0)
   1: derived: tabulate (>=0.9.0,<0.10.0)
   1: derived: platformdirs (>=4.2.0,<5.0.0)
   1: derived: pick (>=2.2.0,<3.0.0)
   1: derived: keyring (>=24.0,<25.0)
   1: derived: colorama (>=0.4.5,<0.5.0)
   1: derived: cmd2 (>=2.4,<3.0)
   1: derived: click-spinner (>=0.1.10,<0.2.0)
   1: derived: click-option-group (>=0.5.6,<0.6.0)
   1: derived: click (>=8.1.3,<9.0.0)
   1: derived: caracara (>=0.6.0,<0.7.0)
Source (PyPI): 1 packages found for toml >=0.10.2,<0.11.0
Source (PyPI): 6 packages found for pydocstyle >=6.1.1,<7.0.0
Source (PyPI): 16 packages found for pytest >=7.0.1,<8.0.0
Source (PyPI): 24 packages found for pylint >=2.15.4,<4.0.0
Source (PyPI): 2 packages found for flake8 >=6.0.0,<7.0.0
Source (PyPI): 6 packages found for setuptools >=69.0,<70.0
Source (PyPI): 1 packages found for prompt-toolkit >=3.0.43,<4.0.0
Source (PyPI): 1 packages found for tabulate >=0.9.0,<0.10.0
Source (PyPI): 1 packages found for platformdirs >=4.2.0,<5.0.0
Source (PyPI): 1 packages found for pick >=2.2.0,<3.0.0
Source (PyPI): 6 packages found for keyring >=24.0,<25.0
Source (PyPI): 2 packages found for colorama >=0.4.5,<0.5.0
Source (PyPI): 4 packages found for cmd2 >=2.4,<3.0
Source (PyPI): 1 packages found for click-spinner >=0.1.10,<0.2.0
Source (PyPI): 1 packages found for click-option-group >=0.5.6,<0.6.0
Source (PyPI): 5 packages found for click >=8.1.3,<9.0.0
Source (PyPI): 1 packages found for caracara >=0.6.0,<0.7.0
   1: selecting toml (0.10.2)
   1: fact: prompt-toolkit (3.0.43) depends on wcwidth (*)
   1: selecting prompt-toolkit (3.0.43)
   1: derived: wcwidth
Source (PyPI): 25 packages found for wcwidth *
   1: selecting tabulate (0.9.0)
   1: selecting platformdirs (4.2.0)
   1: fact: pick (2.2.0) depends on windows-curses (>=2.2.0,<3.0.0)
   1: selecting pick (2.2.0)
   1: derived: windows-curses (>=2.2.0,<3.0.0)
Source (PyPI): 4 packages found for windows-curses >=2.2.0,<3.0.0
   1: selecting click-spinner (0.1.10)
   1: fact: click-option-group (0.5.6) depends on Click (>=7.0,<9)
   1: selecting click-option-group (0.5.6)
   1: fact: caracara (0.6.0) depends on py7zr (>=0.20,<0.21)
   1: fact: caracara (0.6.0) depends on crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: fact: caracara (0.6.0) depends on caracara-filters (>=0.2,<0.3)
   1: fact: caracara (0.6.0) depends on setuptools (>=69.0,<70.0)
   1: selecting caracara (0.6.0)
   1: derived: caracara-filters (>=0.2,<0.3)
   1: derived: crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: derived: py7zr (>=0.20,<0.21)
Source (PyPI): 1 packages found for caracara-filters >=0.2,<0.3
Source (PyPI): 2 packages found for crowdstrike-falconpy >=1.4.0,<2.0.0
Source (PyPI): 7 packages found for py7zr >=0.20,<0.21
   1: selecting caracara-filters (0.2.0)
   1: selecting wcwidth (0.2.13)
   1: fact: pylint (3.0.3) depends on platformdirs (>=2.2.0)
   1: fact: pylint (3.0.3) depends on astroid (>=3.0.1,<=3.1.0-dev0)
   1: fact: pylint (3.0.3) depends on isort (>=4.2.5,<5.13.0 || >5.13.0,<6)
   1: fact: pylint (3.0.3) depends on mccabe (>=0.6,<0.8)
   1: fact: pylint (3.0.3) depends on tomlkit (>=0.10.1)
   1: fact: pylint (3.0.3) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (3.0.3) depends on dill (>=0.3.7)
   1: fact: pylint (3.0.3) depends on tomli (>=1.1.0)
   1: fact: pylint (3.0.3) depends on colorama (>=0.4.5)
   1: selecting pylint (3.0.3)
   1: derived: tomli (>=1.1.0)
   1: derived: dill (>=0.3.7)
   1: derived: typing-extensions (>=3.10.0)
   1: derived: tomlkit (>=0.10.1)
   1: derived: mccabe (>=0.6,<0.8)
   1: derived: isort (>=4.2.5,!=5.13.0,<6)
   1: derived: astroid (>=3.0.1,<=3.1.0-dev0)
Source (PyPI): 7 packages found for tomli >=1.1.0
Source (PyPI): 2 packages found for dill >=0.3.7
Source (PyPI): 19 packages found for typing-extensions >=3.10.0
Source (PyPI): 15 packages found for tomlkit >=0.10.1
Source (PyPI): 3 packages found for mccabe >=0.6,<0.8
Source (PyPI): 82 packages found for isort >=4.2.5,<5.13.0 || >5.13.0,<6
Source (PyPI): 3 packages found for astroid >=3.0.1,<=3.1.0-dev0
   1: selecting isort (5.13.2)
   1: fact: pytest (7.4.4) depends on iniconfig (*)
   1: fact: pytest (7.4.4) depends on packaging (*)
   1: fact: pytest (7.4.4) depends on pluggy (>=0.12,<2.0)
   1: fact: pytest (7.4.4) depends on exceptiongroup (>=1.0.0rc8)
   1: fact: pytest (7.4.4) depends on tomli (>=1.0.0)
   1: fact: pytest (7.4.4) depends on colorama (*)
   1: selecting pytest (7.4.4)
   1: derived: exceptiongroup (>=1.0.0rc8)
   1: derived: pluggy (>=0.12,<2.0)
   1: derived: packaging
   1: derived: iniconfig
Source (PyPI): 10 packages found for exceptiongroup >=1.0.0rc8
Source (PyPI): 7 packages found for pluggy >=0.12,<2.0
Source (PyPI): 42 packages found for packaging *
Source (PyPI): 6 packages found for iniconfig *
   1: selecting packaging (23.2)
   1: selecting tomlkit (0.12.3)
   1: fact: py7zr (0.20.8) depends on texttable (*)
   1: fact: py7zr (0.20.8) depends on pycryptodomex (>=3.16.0)
   1: fact: py7zr (0.20.8) depends on pyzstd (>=0.15.9)
   1: fact: py7zr (0.20.8) depends on pyppmd (>=1.1.0,<1.2.0)
   1: fact: py7zr (0.20.8) depends on pybcj (>=1.0.0,<1.1.0)
   1: fact: py7zr (0.20.8) depends on multivolumefile (>=0.2.3)
   1: fact: py7zr (0.20.8) depends on inflate64 (>=1.0.0,<1.1.0)
   1: fact: py7zr (0.20.8) depends on brotli (>=1.1.0)
   1: fact: py7zr (0.20.8) depends on brotlicffi (>=1.1.0.0)
   1: fact: py7zr (0.20.8) depends on psutil (*)
   1: selecting py7zr (0.20.8)
   1: derived: psutil
   1: derived: brotlicffi (>=1.1.0.0)
   1: derived: brotli (>=1.1.0)
   1: derived: inflate64 (>=1.0.0,<1.1.0)
   1: derived: multivolumefile (>=0.2.3)
   1: derived: pybcj (>=1.0.0,<1.1.0)
   1: derived: pyppmd (>=1.1.0,<1.2.0)
   1: derived: pyzstd (>=0.15.9)
   1: derived: pycryptodomex (>=3.16.0)
   1: derived: texttable
Source (PyPI): 91 packages found for psutil *
Source (PyPI): 1 packages found for brotlicffi >=1.1.0.0
Source (PyPI): 1 packages found for brotli >=1.1.0
Source (PyPI): 1 packages found for inflate64 >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for multivolumefile >=0.2.3
Source (PyPI): 3 packages found for pybcj >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for pyppmd >=1.1.0,<1.2.0
Source (PyPI): 1 packages found for pyzstd >=0.15.9
Source (PyPI): 6 packages found for pycryptodomex >=3.16.0
Source (PyPI): 26 packages found for texttable *
   1: selecting inflate64 (1.0.0)
   1: selecting multivolumefile (0.2.3)
   1: selecting pyppmd (1.1.0)
   1: selecting pyzstd (0.15.9)
   1: selecting texttable (1.7.0)
   1: selecting pluggy (1.4.0)
   1: fact: pydocstyle (6.3.0) depends on snowballstemmer (>=2.2.0)
   1: selecting pydocstyle (6.3.0)
   1: derived: snowballstemmer (>=2.2.0)
Source (PyPI): 1 packages found for snowballstemmer >=2.2.0
   1: selecting snowballstemmer (2.2.0)
   1: selecting setuptools (69.1.1)
   1: fact: keyring (24.3.0) depends on jaraco.classes (*)
   1: fact: keyring (24.3.0) depends on importlib-metadata (>=4.11.4)
   1: fact: keyring (24.3.0) depends on SecretStorage (>=3.2)
   1: fact: keyring (24.3.0) depends on jeepney (>=0.4.2)
   1: fact: keyring (24.3.0) depends on pywin32-ctypes (>=0.2.0)
   1: selecting keyring (24.3.0)
   1: derived: pywin32-ctypes (>=0.2.0)
   1: derived: jeepney (>=0.4.2)
   1: derived: SecretStorage (>=3.2)
   1: derived: importlib-metadata (>=4.11.4)
   1: derived: jaraco.classes
Source (PyPI): 3 packages found for pywin32-ctypes >=0.2.0
Source (PyPI): 7 packages found for jeepney >=0.4.2
Source (PyPI): 5 packages found for secretstorage >=3.2
Source (PyPI): 24 packages found for importlib-metadata >=4.11.4
Source (PyPI): 19 packages found for jaraco-classes *
   1: fact: jaraco-classes (3.3.1) depends on more-itertools (*)
   1: selecting jaraco-classes (3.3.1)
   1: derived: more-itertools
Source (PyPI): 44 packages found for more-itertools *
   1: selecting more-itertools (10.2.0)
   1: selecting iniconfig (2.0.0)
   1: selecting pycryptodomex (3.20.0)
   1: fact: click (8.1.7) depends on colorama (*)
   1: selecting click (8.1.7)
   1: fact: cmd2 (2.4.3) depends on attrs (>=16.3.0)
   1: fact: cmd2 (2.4.3) depends on pyperclip (>=1.6)
   1: fact: cmd2 (2.4.3) depends on wcwidth (>=0.1.7)
   1: fact: cmd2 (2.4.3) depends on pyreadline3 (*)
   1: selecting cmd2 (2.4.3)
   1: derived: pyreadline3
   1: derived: pyperclip (>=1.6)
   1: derived: attrs (>=16.3.0)
Source (PyPI): 6 packages found for pyreadline3 *
Source (PyPI): 10 packages found for pyperclip >=1.6
Source (PyPI): 20 packages found for attrs >=16.3.0
   1: selecting attrs (23.2.0)
   1: selecting pyperclip (1.8.2)
   1: selecting mccabe (0.7.0)
   1: fact: astroid (3.0.3) depends on typing-extensions (>=4.0.0)
   1: selecting astroid (3.0.3)
   1: derived: typing-extensions (>=4.0.0)
   1: selecting pybcj (1.0.2)
   1: fact: flake8 (6.1.0) depends on mccabe (>=0.7.0,<0.8.0)
   1: fact: flake8 (6.1.0) depends on pycodestyle (>=2.11.0,<2.12.0)
   1: fact: flake8 (6.1.0) depends on pyflakes (>=3.1.0,<3.2.0)
   1: selecting flake8 (6.1.0)
   1: derived: pyflakes (>=3.1.0,<3.2.0)
   1: derived: pycodestyle (>=2.11.0,<2.12.0)
Source (PyPI): 1 packages found for pyflakes >=3.1.0,<3.2.0
Source (PyPI): 2 packages found for pycodestyle >=2.11.0,<2.12.0
   1: selecting pyflakes (3.1.0)
   1: selecting colorama (0.4.6)
   1: fact: crowdstrike-falconpy (1.4.1) depends on requests (*)
   1: fact: crowdstrike-falconpy (1.4.1) depends on urllib3 (*)
   1: selecting crowdstrike-falconpy (1.4.1)
   1: derived: urllib3
   1: derived: requests
Source (PyPI): 84 packages found for urllib3 *
Source (PyPI): 148 packages found for requests *
   1: fact: requests (2.31.0) depends on charset-normalizer (>=2,<4)
   1: fact: requests (2.31.0) depends on idna (>=2.5,<4)
   1: fact: requests (2.31.0) depends on urllib3 (>=1.21.1,<3)
   1: fact: requests (2.31.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.31.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<3)
   1: derived: idna (>=2.5,<4)
   1: derived: charset-normalizer (>=2,<4)
Source (PyPI): 33 packages found for certifi >=2017.4.17
Source (PyPI): 13 packages found for idna >=2.5,<4
Source (PyPI): 22 packages found for charset-normalizer >=2,<4
   1: selecting urllib3 (2.2.1)
   1: selecting certifi (2024.2.2)
   1: selecting charset-normalizer (3.3.2)
   1: selecting idna (3.6)
   1: selecting pycodestyle (2.11.1)
   1: fact: brotlicffi (1.1.0.0) depends on cffi (>=1.0.0)
   1: selecting brotlicffi (1.1.0.0)
   1: derived: cffi (>=1.0.0)
Source (PyPI): 47 packages found for cffi >=1.0.0
   1: fact: cffi (1.16.0) depends on pycparser (*)
   1: selecting cffi (1.16.0)
   1: derived: pycparser
Source (PyPI): 21 packages found for pycparser *
   1: selecting pycparser (2.21)
   1: selecting brotli (1.1.0)
   1: selecting psutil (5.9.8)
   1: fact: importlib-metadata (7.0.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (7.0.1)
   1: derived: zipp (>=0.5)
Source (PyPI): 41 packages found for zipp >=0.5
   1: selecting zipp (3.17.0)
   1: selecting typing-extensions (4.9.0)
   1: selecting exceptiongroup (1.2.0)
   1: selecting tomli (2.0.1)
   1: selecting jeepney (0.8.0)
   1: selecting pyreadline3 (3.4.1)
   1: fact: secretstorage (3.3.3) depends on cryptography (>=2.0)
   1: fact: secretstorage (3.3.3) depends on jeepney (>=0.6)
   1: selecting secretstorage (3.3.3)
   1: derived: cryptography (>=2.0)
Source (PyPI): 73 packages found for cryptography >=2.0
   1: fact: cryptography (42.0.4) depends on cffi (>=1.12)
   1: selecting cryptography (42.0.4)
   1: selecting windows-curses (2.3.2)
   1: selecting pywin32-ctypes (0.2.2)
   1: selecting dill (0.3.8)
   1: Version solving took 0.234 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution with the following overrides ({Package('pylint', '3.0.3'): {'dill': <Dependency dill (>=0.3.6)>}}).
   1: fact: falcon-toolkit is 3.3.1
   1: derived: falcon-toolkit
   1: fact: falcon-toolkit depends on caracara (^0.6.0)
   1: fact: falcon-toolkit depends on click (^8.1.3)
   1: fact: falcon-toolkit depends on click-option-group (^0.5.6)
   1: fact: falcon-toolkit depends on click-spinner (^0.1.10)
   1: fact: falcon-toolkit depends on cmd2 (^2.4)
   1: fact: falcon-toolkit depends on colorama (^0.4.5)
   1: fact: falcon-toolkit depends on keyring (^24.0)
   1: fact: falcon-toolkit depends on pick (^2.2.0)
   1: fact: falcon-toolkit depends on platformdirs (^4.2.0)
   1: fact: falcon-toolkit depends on tabulate (^0.9.0)
   1: fact: falcon-toolkit depends on prompt-toolkit (^3.0.43)
   1: fact: falcon-toolkit depends on setuptools (^69.0)
   1: fact: falcon-toolkit depends on flake8 (^6.0.0)
   1: fact: falcon-toolkit depends on pylint (>=2.15.4,<4.0.0)
   1: fact: falcon-toolkit depends on pytest (^7.0.1)
   1: fact: falcon-toolkit depends on pydocstyle (^6.1.1)
   1: fact: falcon-toolkit depends on toml (^0.10.2)
   1: selecting falcon-toolkit (3.3.1)
   1: derived: toml (>=0.10.2,<0.11.0)
   1: derived: pydocstyle (>=6.1.1,<7.0.0)
   1: derived: pytest (>=7.0.1,<8.0.0)
   1: derived: pylint (>=2.15.4,<4.0.0)
   1: derived: flake8 (>=6.0.0,<7.0.0)
   1: derived: setuptools (>=69.0,<70.0)
   1: derived: prompt-toolkit (>=3.0.43,<4.0.0)
   1: derived: tabulate (>=0.9.0,<0.10.0)
   1: derived: platformdirs (>=4.2.0,<5.0.0)
   1: derived: pick (>=2.2.0,<3.0.0)
   1: derived: keyring (>=24.0,<25.0)
   1: derived: colorama (>=0.4.5,<0.5.0)
   1: derived: cmd2 (>=2.4,<3.0)
   1: derived: click-spinner (>=0.1.10,<0.2.0)
   1: derived: click-option-group (>=0.5.6,<0.6.0)
   1: derived: click (>=8.1.3,<9.0.0)
   1: derived: caracara (>=0.6.0,<0.7.0)
Source (PyPI): 1 packages found for toml >=0.10.2,<0.11.0
Source (PyPI): 6 packages found for pydocstyle >=6.1.1,<7.0.0
Source (PyPI): 16 packages found for pytest >=7.0.1,<8.0.0
Source (PyPI): 24 packages found for pylint >=2.15.4,<4.0.0
Source (PyPI): 2 packages found for flake8 >=6.0.0,<7.0.0
Source (PyPI): 6 packages found for setuptools >=69.0,<70.0
Source (PyPI): 1 packages found for prompt-toolkit >=3.0.43,<4.0.0
Source (PyPI): 1 packages found for tabulate >=0.9.0,<0.10.0
Source (PyPI): 1 packages found for platformdirs >=4.2.0,<5.0.0
Source (PyPI): 1 packages found for pick >=2.2.0,<3.0.0
Source (PyPI): 6 packages found for keyring >=24.0,<25.0
Source (PyPI): 2 packages found for colorama >=0.4.5,<0.5.0
Source (PyPI): 4 packages found for cmd2 >=2.4,<3.0
Source (PyPI): 1 packages found for click-spinner >=0.1.10,<0.2.0
Source (PyPI): 1 packages found for click-option-group >=0.5.6,<0.6.0
Source (PyPI): 5 packages found for click >=8.1.3,<9.0.0
Source (PyPI): 1 packages found for caracara >=0.6.0,<0.7.0
   1: selecting toml (0.10.2)
   1: fact: prompt-toolkit (3.0.43) depends on wcwidth (*)
   1: selecting prompt-toolkit (3.0.43)
   1: derived: wcwidth
Source (PyPI): 25 packages found for wcwidth *
   1: selecting tabulate (0.9.0)
   1: selecting platformdirs (4.2.0)
   1: fact: pick (2.2.0) depends on windows-curses (>=2.2.0,<3.0.0)
   1: selecting pick (2.2.0)
   1: derived: windows-curses (>=2.2.0,<3.0.0)
Source (PyPI): 4 packages found for windows-curses >=2.2.0,<3.0.0
   1: selecting click-spinner (0.1.10)
   1: fact: click-option-group (0.5.6) depends on Click (>=7.0,<9)
   1: selecting click-option-group (0.5.6)
   1: fact: caracara (0.6.0) depends on py7zr (>=0.20,<0.21)
   1: fact: caracara (0.6.0) depends on crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: fact: caracara (0.6.0) depends on caracara-filters (>=0.2,<0.3)
   1: fact: caracara (0.6.0) depends on setuptools (>=69.0,<70.0)
   1: selecting caracara (0.6.0)
   1: derived: caracara-filters (>=0.2,<0.3)
   1: derived: crowdstrike-falconpy (>=1.4.0,<2.0.0)
   1: derived: py7zr (>=0.20,<0.21)
Source (PyPI): 1 packages found for caracara-filters >=0.2,<0.3
Source (PyPI): 2 packages found for crowdstrike-falconpy >=1.4.0,<2.0.0
Source (PyPI): 7 packages found for py7zr >=0.20,<0.21
   1: selecting caracara-filters (0.2.0)
   1: selecting wcwidth (0.2.13)
   1: fact: pylint (3.0.3) depends on platformdirs (>=2.2.0)
   1: fact: pylint (3.0.3) depends on astroid (>=3.0.1,<=3.1.0-dev0)
   1: fact: pylint (3.0.3) depends on isort (>=4.2.5,<5.13.0 || >5.13.0,<6)
   1: fact: pylint (3.0.3) depends on mccabe (>=0.6,<0.8)
   1: fact: pylint (3.0.3) depends on tomlkit (>=0.10.1)
   1: fact: pylint (3.0.3) depends on typing-extensions (>=3.10.0)
   1: fact: pylint (3.0.3) depends on dill (>=0.3.6)
   1: fact: pylint (3.0.3) depends on tomli (>=1.1.0)
   1: fact: pylint (3.0.3) depends on colorama (>=0.4.5)
   1: selecting pylint (3.0.3)
   1: derived: tomli (>=1.1.0)
   1: derived: dill (>=0.3.6)
   1: derived: typing-extensions (>=3.10.0)
   1: derived: tomlkit (>=0.10.1)
   1: derived: mccabe (>=0.6,<0.8)
   1: derived: isort (>=4.2.5,!=5.13.0,<6)
   1: derived: astroid (>=3.0.1,<=3.1.0-dev0)
Source (PyPI): 7 packages found for tomli >=1.1.0
Source (PyPI): 3 packages found for dill >=0.3.6
Source (PyPI): 19 packages found for typing-extensions >=3.10.0
Source (PyPI): 15 packages found for tomlkit >=0.10.1
Source (PyPI): 3 packages found for mccabe >=0.6,<0.8
Source (PyPI): 82 packages found for isort >=4.2.5,<5.13.0 || >5.13.0,<6
Source (PyPI): 3 packages found for astroid >=3.0.1,<=3.1.0-dev0
   1: selecting isort (5.13.2)
   1: fact: pytest (7.4.4) depends on iniconfig (*)
   1: fact: pytest (7.4.4) depends on packaging (*)
   1: fact: pytest (7.4.4) depends on pluggy (>=0.12,<2.0)
   1: fact: pytest (7.4.4) depends on exceptiongroup (>=1.0.0rc8)
   1: fact: pytest (7.4.4) depends on tomli (>=1.0.0)
   1: fact: pytest (7.4.4) depends on colorama (*)
   1: selecting pytest (7.4.4)
   1: derived: exceptiongroup (>=1.0.0rc8)
   1: derived: pluggy (>=0.12,<2.0)
   1: derived: packaging
   1: derived: iniconfig
Source (PyPI): 10 packages found for exceptiongroup >=1.0.0rc8
Source (PyPI): 7 packages found for pluggy >=0.12,<2.0
Source (PyPI): 42 packages found for packaging *
Source (PyPI): 6 packages found for iniconfig *
   1: selecting packaging (23.2)
   1: selecting tomlkit (0.12.3)
   1: fact: py7zr (0.20.8) depends on texttable (*)
   1: fact: py7zr (0.20.8) depends on pycryptodomex (>=3.16.0)
   1: fact: py7zr (0.20.8) depends on pyzstd (>=0.15.9)
   1: fact: py7zr (0.20.8) depends on pyppmd (>=1.1.0,<1.2.0)
   1: fact: py7zr (0.20.8) depends on pybcj (>=1.0.0,<1.1.0)
   1: fact: py7zr (0.20.8) depends on multivolumefile (>=0.2.3)
   1: fact: py7zr (0.20.8) depends on inflate64 (>=1.0.0,<1.1.0)
   1: fact: py7zr (0.20.8) depends on brotli (>=1.1.0)
   1: fact: py7zr (0.20.8) depends on brotlicffi (>=1.1.0.0)
   1: fact: py7zr (0.20.8) depends on psutil (*)
   1: selecting py7zr (0.20.8)
   1: derived: psutil
   1: derived: brotlicffi (>=1.1.0.0)
   1: derived: brotli (>=1.1.0)
   1: derived: inflate64 (>=1.0.0,<1.1.0)
   1: derived: multivolumefile (>=0.2.3)
   1: derived: pybcj (>=1.0.0,<1.1.0)
   1: derived: pyppmd (>=1.1.0,<1.2.0)
   1: derived: pyzstd (>=0.15.9)
   1: derived: pycryptodomex (>=3.16.0)
   1: derived: texttable
Source (PyPI): 91 packages found for psutil *
Source (PyPI): 1 packages found for brotlicffi >=1.1.0.0
Source (PyPI): 1 packages found for brotli >=1.1.0
Source (PyPI): 1 packages found for inflate64 >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for multivolumefile >=0.2.3
Source (PyPI): 3 packages found for pybcj >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for pyppmd >=1.1.0,<1.2.0
Source (PyPI): 1 packages found for pyzstd >=0.15.9
Source (PyPI): 6 packages found for pycryptodomex >=3.16.0
Source (PyPI): 26 packages found for texttable *
   1: selecting inflate64 (1.0.0)
   1: selecting multivolumefile (0.2.3)
   1: selecting pyppmd (1.1.0)
   1: selecting pyzstd (0.15.9)
   1: selecting texttable (1.7.0)
   1: selecting pluggy (1.4.0)
   1: fact: pydocstyle (6.3.0) depends on snowballstemmer (>=2.2.0)
   1: selecting pydocstyle (6.3.0)
   1: derived: snowballstemmer (>=2.2.0)
Source (PyPI): 1 packages found for snowballstemmer >=2.2.0
   1: selecting snowballstemmer (2.2.0)
   1: selecting setuptools (69.1.1)
   1: fact: keyring (24.3.0) depends on jaraco.classes (*)
   1: fact: keyring (24.3.0) depends on importlib-metadata (>=4.11.4)
   1: fact: keyring (24.3.0) depends on SecretStorage (>=3.2)
   1: fact: keyring (24.3.0) depends on jeepney (>=0.4.2)
   1: fact: keyring (24.3.0) depends on pywin32-ctypes (>=0.2.0)
   1: selecting keyring (24.3.0)
   1: derived: pywin32-ctypes (>=0.2.0)
   1: derived: jeepney (>=0.4.2)
   1: derived: SecretStorage (>=3.2)
   1: derived: importlib-metadata (>=4.11.4)
   1: derived: jaraco.classes
Source (PyPI): 3 packages found for pywin32-ctypes >=0.2.0
Source (PyPI): 7 packages found for jeepney >=0.4.2
Source (PyPI): 5 packages found for secretstorage >=3.2
Source (PyPI): 24 packages found for importlib-metadata >=4.11.4
Source (PyPI): 19 packages found for jaraco-classes *
   1: fact: jaraco-classes (3.3.1) depends on more-itertools (*)
   1: selecting jaraco-classes (3.3.1)
   1: derived: more-itertools
Source (PyPI): 44 packages found for more-itertools *
   1: selecting more-itertools (10.2.0)
   1: selecting iniconfig (2.0.0)
   1: selecting pycryptodomex (3.20.0)
   1: fact: click (8.1.7) depends on colorama (*)
   1: selecting click (8.1.7)
   1: fact: cmd2 (2.4.3) depends on attrs (>=16.3.0)
   1: fact: cmd2 (2.4.3) depends on pyperclip (>=1.6)
   1: fact: cmd2 (2.4.3) depends on wcwidth (>=0.1.7)
   1: fact: cmd2 (2.4.3) depends on pyreadline3 (*)
   1: selecting cmd2 (2.4.3)
   1: derived: pyreadline3
   1: derived: pyperclip (>=1.6)
   1: derived: attrs (>=16.3.0)
Source (PyPI): 6 packages found for pyreadline3 *
Source (PyPI): 10 packages found for pyperclip >=1.6
Source (PyPI): 20 packages found for attrs >=16.3.0
   1: selecting attrs (23.2.0)
   1: selecting pyperclip (1.8.2)
   1: selecting mccabe (0.7.0)
   1: fact: astroid (3.0.3) depends on typing-extensions (>=4.0.0)
   1: selecting astroid (3.0.3)
   1: derived: typing-extensions (>=4.0.0)
   1: selecting pybcj (1.0.2)
   1: fact: flake8 (6.1.0) depends on mccabe (>=0.7.0,<0.8.0)
   1: fact: flake8 (6.1.0) depends on pycodestyle (>=2.11.0,<2.12.0)
   1: fact: flake8 (6.1.0) depends on pyflakes (>=3.1.0,<3.2.0)
   1: selecting flake8 (6.1.0)
   1: derived: pyflakes (>=3.1.0,<3.2.0)
   1: derived: pycodestyle (>=2.11.0,<2.12.0)
Source (PyPI): 1 packages found for pyflakes >=3.1.0,<3.2.0
Source (PyPI): 2 packages found for pycodestyle >=2.11.0,<2.12.0
   1: selecting pyflakes (3.1.0)
   1: selecting colorama (0.4.6)
   1: fact: crowdstrike-falconpy (1.4.1) depends on requests (*)
   1: fact: crowdstrike-falconpy (1.4.1) depends on urllib3 (*)
   1: selecting crowdstrike-falconpy (1.4.1)
   1: derived: urllib3
   1: derived: requests
Source (PyPI): 84 packages found for urllib3 *
Source (PyPI): 148 packages found for requests *
   1: fact: requests (2.31.0) depends on charset-normalizer (>=2,<4)
   1: fact: requests (2.31.0) depends on idna (>=2.5,<4)
   1: fact: requests (2.31.0) depends on urllib3 (>=1.21.1,<3)
   1: fact: requests (2.31.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.31.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<3)
   1: derived: idna (>=2.5,<4)
   1: derived: charset-normalizer (>=2,<4)
Source (PyPI): 33 packages found for certifi >=2017.4.17
Source (PyPI): 13 packages found for idna >=2.5,<4
Source (PyPI): 22 packages found for charset-normalizer >=2,<4
   1: selecting urllib3 (2.2.1)
   1: selecting certifi (2024.2.2)
   1: selecting charset-normalizer (3.3.2)
   1: selecting idna (3.6)
   1: selecting pycodestyle (2.11.1)
   1: fact: brotlicffi (1.1.0.0) depends on cffi (>=1.0.0)
   1: selecting brotlicffi (1.1.0.0)
   1: derived: cffi (>=1.0.0)
Source (PyPI): 47 packages found for cffi >=1.0.0
   1: fact: cffi (1.16.0) depends on pycparser (*)
   1: selecting cffi (1.16.0)
   1: derived: pycparser
Source (PyPI): 21 packages found for pycparser *
   1: selecting pycparser (2.21)
   1: selecting brotli (1.1.0)
   1: selecting psutil (5.9.8)
   1: fact: importlib-metadata (7.0.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (7.0.1)
   1: derived: zipp (>=0.5)
Source (PyPI): 41 packages found for zipp >=0.5
   1: selecting zipp (3.17.0)
   1: selecting typing-extensions (4.9.0)
   1: selecting exceptiongroup (1.2.0)
   1: selecting tomli (2.0.1)
   1: selecting jeepney (0.8.0)
   1: selecting pyreadline3 (3.4.1)
   1: fact: secretstorage (3.3.3) depends on cryptography (>=2.0)
   1: fact: secretstorage (3.3.3) depends on jeepney (>=0.6)
   1: selecting secretstorage (3.3.3)
   1: derived: cryptography (>=2.0)
Source (PyPI): 73 packages found for cryptography >=2.0
   1: fact: cryptography (42.0.4) depends on cffi (>=1.12)
   1: selecting cryptography (42.0.4)
   1: selecting windows-curses (2.3.2)
   1: selecting dill (0.3.8)
   1: selecting pywin32-ctypes (0.2.2)
   1: Version solving took 0.288 seconds.
   1: Tried 1 solutions.
   0: Complete version solving took 1.583 seconds with 3 overrides
   0: Resolved with overrides: ({Package('pylint', '3.0.3'): {'dill': <Dependency dill (>=0.2)>}}), ({Package('pylint', '3.0.3'): {'dill': <Dependency dill (>=0.3.7)>}}), ({Package('pylint', '3.0.3'): {'dill': <Dependency dill (>=0.3.6)>}})

Finding the necessary packages for the current system
Source (PyPI): 1 packages found for toml >=0.10.2,<0.11.0
Source (PyPI): 1 packages found for pydocstyle >=6.1.1,<7.0.0
Source (PyPI): 1 packages found for pytest >=7.0.1,<8.0.0
Source (PyPI): 1 packages found for pylint >=2.15.4,<4.0.0
Source (PyPI): 1 packages found for flake8 >=6.0.0,<7.0.0
Source (PyPI): 1 packages found for setuptools >=69.0,<70.0
Source (PyPI): 1 packages found for prompt-toolkit >=3.0.43,<4.0.0
Source (PyPI): 1 packages found for tabulate >=0.9.0,<0.10.0
Source (PyPI): 1 packages found for platformdirs >=4.2.0,<5.0.0
Source (PyPI): 1 packages found for pick >=2.2.0,<3.0.0
Source (PyPI): 1 packages found for keyring >=24.0,<25.0
Source (PyPI): 1 packages found for colorama >=0.4.5,<0.5.0
Source (PyPI): 1 packages found for cmd2 >=2.4,<3.0
Source (PyPI): 1 packages found for click-spinner >=0.1.10,<0.2.0
Source (PyPI): 1 packages found for click-option-group >=0.5.6,<0.6.0
Source (PyPI): 1 packages found for click >=8.1.3,<9.0.0
Source (PyPI): 1 packages found for caracara >=0.6.0,<0.7.0
Source (PyPI): 1 packages found for snowballstemmer >=2.2.0
Source (PyPI): 1 packages found for pluggy >=0.12,<2.0
Source (PyPI): 1 packages found for packaging *
Source (PyPI): 1 packages found for iniconfig *
Source (PyPI): 1 packages found for dill >=0.3.7
Source (PyPI): 1 packages found for tomlkit >=0.10.1
Source (PyPI): 1 packages found for mccabe >=0.6,<0.8
Source (PyPI): 1 packages found for isort >=4.2.5,<5.13.0 || >5.13.0,<6
Source (PyPI): 1 packages found for astroid >=3.0.1,<=3.1.0-dev0
Source (PyPI): 1 packages found for pyflakes >=3.1.0,<3.2.0
Source (PyPI): 1 packages found for pycodestyle >=2.11.0,<2.12.0
Source (PyPI): 1 packages found for wcwidth *
Source (PyPI): 1 packages found for jaraco-classes *
Source (PyPI): 1 packages found for pyperclip >=1.6
Source (PyPI): 1 packages found for attrs >=16.3.0
Source (PyPI): 1 packages found for caracara-filters >=0.2,<0.3
Source (PyPI): 1 packages found for crowdstrike-falconpy >=1.4.0,<2.0.0
Source (PyPI): 1 packages found for py7zr >=0.20,<0.21
Source (PyPI): 1 packages found for more-itertools *
Source (PyPI): 1 packages found for urllib3 *
Source (PyPI): 1 packages found for requests *
Source (PyPI): 1 packages found for psutil *
Source (PyPI): 1 packages found for brotli >=1.1.0
Source (PyPI): 1 packages found for inflate64 >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for multivolumefile >=0.2.3
Source (PyPI): 1 packages found for pybcj >=1.0.0,<1.1.0
Source (PyPI): 1 packages found for pyppmd >=1.1.0,<1.2.0
Source (PyPI): 1 packages found for pyzstd >=0.15.9
Source (PyPI): 1 packages found for pycryptodomex >=3.16.0
Source (PyPI): 1 packages found for texttable *
Source (PyPI): 1 packages found for certifi >=2017.4.17
Source (PyPI): 1 packages found for idna >=2.5,<4
Source (PyPI): 1 packages found for charset-normalizer >=2,<4

Package operations: 15 installs, 0 updates, 0 removals

  • Installing pyperclip (1.8.2)

  Stack trace:

  9  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/executor.py:269 in _execute_operation
      267│ 
      268│             try:
    → 269│                 result = self._do_execute_operation(operation)
      270│             except EnvCommandError as e:
      271│                 if e.e.returncode == -2:

  8  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/executor.py:379 in _do_execute_operation
      377│             return 0
      378│ 
    → 379│         result: int = getattr(self, f"_execute_{method}")(operation)
      380│ 
      381│         if result != 0:

  7  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/executor.py:504 in _execute_install
      502│ 
      503│     def _execute_install(self, operation: Install | Update) -> int:
    → 504│         status_code = self._install(operation)
      505│ 
      506│         self._save_url_reference(operation)

  6  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/executor.py:542 in _install
      540│             archive = self._download_link(operation, Link(package.source_url))
      541│         else:
    → 542│             archive = self._download(operation)
      543│ 
      544│         operation_message = self.get_operation_message(operation)

  5  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/executor.py:746 in _download
      744│             self._yanked_warnings.append(message)
      745│ 
    → 746│         return self._download_link(operation, link)
      747│ 
      748│     def _download_link(self, operation: Install | Update, link: Link) -> Path:

  4  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/executor.py:781 in _download_link
      779│             self._write(operation, message)
      780│ 
    → 781│             archive = self._chef.prepare(archive, output_dir=original_archive.parent)
      782│ 
      783│         # Use the original archive to provide the correct hash.

  3  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/chef.py:123 in prepare
      121│             return self._prepare(archive, destination=destination, editable=editable)
      122│ 
    → 123│         return self._prepare_sdist(archive, destination=output_dir)
      124│ 
      125│     def _prepare(

  2  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/chef.py:194 in _prepare_sdist
      192│             destination.mkdir(parents=True, exist_ok=True)
      193│ 
    → 194│             return self._prepare(
      195│                 sdist_dir,
      196│                 destination,

  1  ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/chef.py:135 in _prepare
      133│                 env, directory, runner=quiet_subprocess_runner
      134│             )
    → 135│             env.install(builder.build_system_requires)
      136│ 
      137│             stdout = StringIO()

  ChefInstallError

  Failed to install wheel, setuptools >= 40.8.0.
  
  Output:
  Updating dependencies
  Resolving dependencies...
  
  Package operations: 2 installs, 0 updates, 0 removals
  
    • Installing setuptools (69.1.1)
    • Installing wheel (0.42.0)
  
    CalledProcessError
  
    Command '['/var/folders/cq/wzjp61p545n24_131yqnd5yh0000gn/T/tmpjpw4mfa5/.venv/bin/python', '-I', '-W', 'ignore', '-c', '\nimport importlib.util\nimport json\nimport sys\n\nfrom pathlib import Path\n\nspec = importlib.util.spec_from_file_location(\n    "packaging", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/__init__.py")\n)\npackaging = importlib.util.module_from_spec(spec)\nsys.modules[spec.name] = packaging\n\nspec = importlib.util.spec_from_file_location(\n    "packaging.tags", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py")\n)\npackaging_tags = importlib.util.module_from_spec(spec)\nspec.loader.exec_module(packaging_tags)\n\nprint(\n    json.dumps([(t.interpreter, t.abi, t.platform) for t in packaging_tags.sys_tags()])\n)\n']' returned non-zero exit status 1.
  
    at /usr/local/Cellar/python@3.11/3.11.7_2/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py:571 in run
         567│             # We don't call process.wait() as .__exit__ does that for us.
         568│             raise
         569│         retcode = process.poll()
         570│         if check and retcode:
      →  571│             raise CalledProcessError(retcode, process.args,
         572│                                      output=stdout, stderr=stderr)
         573│     return CompletedProcess(process.args, retcode, stdout, stderr)
         574│ 
         575│ 
  
  The following error occurred when trying to handle this error:
  
  
    EnvCommandError
  
    Command ['/var/folders/cq/wzjp61p545n24_131yqnd5yh0000gn/T/tmpjpw4mfa5/.venv/bin/python', '-I', '-W', 'ignore', '-c', '\nimport importlib.util\nimport json\nimport sys\n\nfrom pathlib import Path\n\nspec = importlib.util.spec_from_file_location(\n    "packaging", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/__init__.py")\n)\npackaging = importlib.util.module_from_spec(spec)\nsys.modules[spec.name] = packaging\n\nspec = importlib.util.spec_from_file_location(\n    "packaging.tags", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py")\n)\npackaging_tags = importlib.util.module_from_spec(spec)\nspec.loader.exec_module(packaging_tags)\n\nprint(\n    json.dumps([(t.interpreter, t.abi, t.platform) for t in packaging_tags.sys_tags()])\n)\n'] errored with the following return code 1
    
    Error output:
    Traceback (most recent call last):
      File "<string>", line 18, in <module>
      File "<frozen importlib._bootstrap_external>", line 995, in exec_module
      File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
      File "/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py", line 7, in <module>
        import distutils.util
    ModuleNotFoundError: No module named 'distutils'
    
  
    at ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/utils/env/base_env.py:354 in _run
        350│                 output = subprocess.check_output(
        351│                     cmd, stderr=stderr, env=env, text=True, **kwargs
        352│                 )
        353│         except CalledProcessError as e:
      → 354│             raise EnvCommandError(e)
        355│ 
        356│         return output
        357│ 
        358│     def execute(self, bin: str, *args: str, **kwargs: Any) -> int:
  
  Cannot install wheel.
  
  
    CalledProcessError
  
    Command '['/var/folders/cq/wzjp61p545n24_131yqnd5yh0000gn/T/tmpjpw4mfa5/.venv/bin/python', '-I', '-W', 'ignore', '-c', '\nimport importlib.util\nimport json\nimport sys\n\nfrom pathlib import Path\n\nspec = importlib.util.spec_from_file_location(\n    "packaging", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/__init__.py")\n)\npackaging = importlib.util.module_from_spec(spec)\nsys.modules[spec.name] = packaging\n\nspec = importlib.util.spec_from_file_location(\n    "packaging.tags", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py")\n)\npackaging_tags = importlib.util.module_from_spec(spec)\nspec.loader.exec_module(packaging_tags)\n\nprint(\n    json.dumps([(t.interpreter, t.abi, t.platform) for t in packaging_tags.sys_tags()])\n)\n']' returned non-zero exit status 1.
  
    at /usr/local/Cellar/python@3.11/3.11.7_2/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py:571 in run
         567│             # We don't call process.wait() as .__exit__ does that for us.
         568│             raise
         569│         retcode = process.poll()
         570│         if check and retcode:
      →  571│             raise CalledProcessError(retcode, process.args,
         572│                                      output=stdout, stderr=stderr)
         573│     return CompletedProcess(process.args, retcode, stdout, stderr)
         574│ 
         575│ 
  
  The following error occurred when trying to handle this error:
  
  
    EnvCommandError
  
    Command ['/var/folders/cq/wzjp61p545n24_131yqnd5yh0000gn/T/tmpjpw4mfa5/.venv/bin/python', '-I', '-W', 'ignore', '-c', '\nimport importlib.util\nimport json\nimport sys\n\nfrom pathlib import Path\n\nspec = importlib.util.spec_from_file_location(\n    "packaging", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/__init__.py")\n)\npackaging = importlib.util.module_from_spec(spec)\nsys.modules[spec.name] = packaging\n\nspec = importlib.util.spec_from_file_location(\n    "packaging.tags", Path(r"/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py")\n)\npackaging_tags = importlib.util.module_from_spec(spec)\nspec.loader.exec_module(packaging_tags)\n\nprint(\n    json.dumps([(t.interpreter, t.abi, t.platform) for t in packaging_tags.sys_tags()])\n)\n'] errored with the following return code 1
    
    Error output:
    Traceback (most recent call last):
      File "<string>", line 18, in <module>
      File "<frozen importlib._bootstrap_external>", line 995, in exec_module
      File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
      File "/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py", line 7, in <module>
        import distutils.util
    ModuleNotFoundError: No module named 'distutils'
    
  
    at ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/utils/env/base_env.py:354 in _run
        350│                 output = subprocess.check_output(
        351│                     cmd, stderr=stderr, env=env, text=True, **kwargs
        352│                 )
        353│         except CalledProcessError as e:
      → 354│             raise EnvCommandError(e)
        355│ 
        356│         return output
        357│ 
        358│     def execute(self, bin: str, *args: str, **kwargs: Any) -> int:
  
  Cannot install setuptools.
  
  
  
  Error:
  

  at ~/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/chef.py:102 in install
       98│             InstalledRepository.load(self._env),
       99│         )
      100│         installer.update(True)
      101│         if installer.run() != 0:
    → 102│             raise ChefInstallError(requirements, io.fetch_output(), io.fetch_error())
      103│ 
      104│ 
      105│ class Chef:
      106│     def __init__(

Cannot install build-system.requires for pyperclip.
@ChristopherHammond13 ChristopherHammond13 added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Feb 23, 2024
@dimbleby
Copy link
Contributor

This is not a poetry bug, pyperclip would need updating.

Since that project has been inactive for three years I don't like your chances, but if you are going to report this anywhere it should be there

Please close

@ChristopherHammond13
Copy link
Author

@dimbleby thank you for checking this!

darn...that's going to break a lot of things. And unfortunately pyperclip is a dependency of Cmd2, so moving away from it is a semi rewrite of my REPL application 😬

What doesn't make sense though is that if I install with pip (just poetry run pip install pyperclip) it installs just fine and poetry install runs ok after. Is there a difference in how Poetry installs the package, or is there a way to work around this? I don't want to abandon Poetry, but I may be able to hack around it by pre-installing the package into the venv via pip before doing a general install.

@dimbleby
Copy link
Contributor

I may have been wrong, normally these things are a problem with the package in question but here perhaps it is that you have a messed up environment.

I have no problem using poetry to install pyperclip on a 3.12 environment.

      File "/Users/chammond/Library/Application Support/pypoetry/venv/lib/python3.11/site-packages/packaging/tags.py", line 7, in <module>
        import distutils.util
    ModuleNotFoundError: No module named 'distutils'

looks like you have lost something from your poetry environment, I am pretty sure that whatever version of packaging you are using declared whatever dependencies it needs: so if they are not there then something has gone wrong with your installation.

@ChristopherHammond13
Copy link
Author

ChristopherHammond13 commented Feb 23, 2024

Thank you so much for your patience with me! I think we have some lift off here. I did a full removal of Poetry and reinstalled it, which used the Python 3.12 binary on the system instead of the 3.11 one. This seems to have fixed the installation (and it brought with it a nice performance bump). I then reinstalled Poetry again with the python3.11 binary so that a 3.11 environment would be set up and did a poetry update again....and it ALSO worked then too. I wiped the .venv each time to be sure and it seems rock solid.

Sounds like we can consign this one to gremlins!

Thank you so much again for your support here. Closing the ticket.

@abn abn removed the status/triage This issue needs to be triaged label Mar 2, 2024
Copy link

github-actions bot commented Apr 2, 2024

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/bug Something isn't working as expected
Projects
None yet
Development

No branches or pull requests

3 participants