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

poetry mishandles black dependencies when installed from private repository, but not when installed from PyPI #9318

Closed
blthayer opened this issue Apr 17, 2024 · 7 comments
Labels
kind/bug Something isn't working as expected status/triage This issue needs to be triaged

Comments

@blthayer
Copy link

blthayer commented Apr 17, 2024

Description

TL;DR

The latest black release (24.4.0) is handled properly by poetry when installed from PyPI. When installed from a private repository (AWS CodeArtifact) which mirrors PyPI for non-internal-to-my-company packages, black version 24.4.0 is installed without its dependencies. Installing previous versions of black from CodeArtifact work fine.

I have verified the hashes for the wheels in CodeArtifact and PyPI are IDENTICAL

Additionally, I have not encountered this issue for any package other than black at 24.4.0. This leads me to believe the root cause of this issue stems from a combination of this new black release and poetry's handling of non-PyPI repositories.

edit: As can be seen in this comment and this comment, this might be related to Metadata-Version changes from 2.1 to 2.3

Evidence

Installation from PyPI Works Fine

bthayer@gazelle:~$ mkdir black-poetry-pypi
bthayer@gazelle:~$ cd black-poetry-pypi/
bthayer@gazelle:~/black-poetry-pypi$ poetry init

This command will guide you through creating your pyproject.toml config.

Package name [black-poetry-pypi]:  
Version [0.1.0]:  
Description []:  
Author [Brandon Thayer <[email protected]>, n to skip]:  
License []:  
Compatible Python versions [^3.11]:  

Would you like to define your main dependencies interactively? (yes/no) [yes] 
You can specify a package in the following forms:
  - A single name (requests): this will search for matches on PyPI
  - A name and a constraint (requests@^2.23.0)
  - A git url (git+https://github.com/python-poetry/poetry.git)
  - A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop)
  - A file path (../my-package/my-package.whl)
  - A directory (../my-package/)
  - A url (https://example.com/packages/my-package-0.1.0.tar.gz)

Package to add or search for (leave blank to skip): [email protected]
Adding [email protected]

Add a package (leave blank to skip): 

Would you like to define your development dependencies interactively? (yes/no) [yes] no
Generated file

[tool.poetry]
name = "black-poetry-pypi"
version = "0.1.0"
description = ""
authors = ["Brandon Thayer <[email protected]>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.11"
black = "24.4.0"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"


Do you confirm generation? (yes/no) [yes]    
bthayer@gazelle:~/black-poetry-pypi$ poetry run python -c "import black"
Creating virtualenv black-poetry-pypi-1ymJqJbJ-py3.11 in /home/bthayer/.cache/pypoetry/virtualenvs
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'black'
bthayer@gazelle:~/black-poetry-pypi$ poetry install
Updating dependencies
Resolving dependencies... (0.3s)

Package operations: 6 installs, 0 updates, 0 removals

  - Installing click (8.1.7)
  - Installing mypy-extensions (1.0.0)
  - Installing packaging (24.0)
  - Installing pathspec (0.12.1)
  - Installing platformdirs (4.2.0)
  - Installing black (24.4.0)

Writing lock file

Installing the current project: black-poetry-pypi (0.1.0)
Warning: The current project could not be installed: [Errno 2] No such file or directory: '/home/bthayer/black-poetry-pypi/README.md'
If you do not want to install the current project use --no-root.
If you want to use Poetry only for dependency management but not for packaging, you can disable package mode by setting package-mode = false in your pyproject.toml file.
In a future version of Poetry this warning will become an error!
bthayer@gazelle:~/black-poetry-pypi$ poetry run python -c "import black"
bthayer@gazelle:~/black-poetry-pypi$ 

The resulting poetry.lock file:

# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.

[[package]]
name = "black"
version = "24.4.0"
description = "The uncompromising code formatter."
optional = false
python-versions = ">=3.8"
files = [
    {file = "black-24.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6ad001a9ddd9b8dfd1b434d566be39b1cd502802c8d38bbb1ba612afda2ef436"},
    {file = "black-24.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3a3a092b8b756c643fe45f4624dbd5a389f770a4ac294cf4d0fce6af86addaf"},
    {file = "black-24.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae79397f367ac8d7adb6c779813328f6d690943f64b32983e896bcccd18cbad"},
    {file = "black-24.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:71d998b73c957444fb7c52096c3843875f4b6b47a54972598741fe9a7f737fcb"},
    {file = "black-24.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8e5537f456a22cf5cfcb2707803431d2feeb82ab3748ade280d6ccd0b40ed2e8"},
    {file = "black-24.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64e60a7edd71fd542a10a9643bf369bfd2644de95ec71e86790b063aa02ff745"},
    {file = "black-24.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd5b4f76056cecce3e69b0d4c228326d2595f506797f40b9233424e2524c070"},
    {file = "black-24.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:64578cf99b6b46a6301bc28bdb89f9d6f9b592b1c5837818a177c98525dbe397"},
    {file = "black-24.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f95cece33329dc4aa3b0e1a771c41075812e46cf3d6e3f1dfe3d91ff09826ed2"},
    {file = "black-24.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4396ca365a4310beef84d446ca5016f671b10f07abdba3e4e4304218d2c71d33"},
    {file = "black-24.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d99dfdf37a2a00a6f7a8dcbd19edf361d056ee51093b2445de7ca09adac965"},
    {file = "black-24.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:21f9407063ec71c5580b8ad975653c66508d6a9f57bd008bb8691d273705adcd"},
    {file = "black-24.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:652e55bb722ca026299eb74e53880ee2315b181dfdd44dca98e43448620ddec1"},
    {file = "black-24.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f2966b9b2b3b7104fca9d75b2ee856fe3fdd7ed9e47c753a4bb1a675f2caab8"},
    {file = "black-24.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bb9ca06e556a09f7f7177bc7cb604e5ed2d2df1e9119e4f7d2f1f7071c32e5d"},
    {file = "black-24.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4e71cdebdc8efeb6deaf5f2deb28325f8614d48426bed118ecc2dcaefb9ebf3"},
    {file = "black-24.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6644f97a7ef6f401a150cca551a1ff97e03c25d8519ee0bbc9b0058772882665"},
    {file = "black-24.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75a2d0b4f5eb81f7eebc31f788f9830a6ce10a68c91fbe0fade34fff7a2836e6"},
    {file = "black-24.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb949f56a63c5e134dfdca12091e98ffb5fd446293ebae123d10fc1abad00b9e"},
    {file = "black-24.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:7852b05d02b5b9a8c893ab95863ef8986e4dda29af80bbbda94d7aee1abf8702"},
    {file = "black-24.4.0-py3-none-any.whl", hash = "sha256:74eb9b5420e26b42c00a3ff470dc0cd144b80a766128b1771d07643165e08d0e"},
    {file = "black-24.4.0.tar.gz", hash = "sha256:f07b69fda20578367eaebbd670ff8fc653ab181e1ff95d84497f9fa20e7d0641"},
]

[package.dependencies]
click = ">=8.0.0"
mypy-extensions = ">=0.4.3"
packaging = ">=22.0"
pathspec = ">=0.9.0"
platformdirs = ">=2"

[package.extras]
colorama = ["colorama (>=0.4.3)"]
d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"]
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
uvloop = ["uvloop (>=0.15.2)"]

[[package]]
name = "click"
version = "8.1.7"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
files = [
    {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
    {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
]

[package.dependencies]
colorama = {version = "*", markers = "platform_system == \"Windows\""}

[[package]]
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
files = [
    {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
    {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
]

[[package]]
name = "mypy-extensions"
version = "1.0.0"
description = "Type system extensions for programs checked with the mypy type checker."
optional = false
python-versions = ">=3.5"
files = [
    {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
    {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
]

[[package]]
name = "packaging"
version = "24.0"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.7"
files = [
    {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"},
    {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"},
]

[[package]]
name = "pathspec"
version = "0.12.1"
description = "Utility library for gitignore style pattern matching of file paths."
optional = false
python-versions = ">=3.8"
files = [
    {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
    {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
]

[[package]]
name = "platformdirs"
version = "4.2.0"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
optional = false
python-versions = ">=3.8"
files = [
    {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"},
    {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"},
]

[package.extras]
docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]

[metadata]
lock-version = "2.0"
python-versions = "^3.11"
content-hash = "0cc9316bffb252457881e1f0978bae006cd59610a67f788a5e2f0724e1b4f7a2"

Installation from AWS CodeArtifact Does Not Specify black's Dependencies for 24.4.0

Building on the previous section, define the CodeArtifact repository in pyproject.toml like so:

[[tool.poetry.source]]
name = "ca"
priority = "primary"
url = "https://<redacted>.d.codeartifact.us-<redacted>.amazonaws.com/<redacted>/simple/"

(URL above has been modified so as to avoid publicly exposing private information)

Now, update poetry.lock accordingly for new repository (authenticating poetry with AWS CA not shown here - this is working fine and unrelated to the issue at hand):

bthayer@gazelle:~/black-poetry-pypi$ poetry update
Updating dependencies
Resolving dependencies... (0.7s)

Package operations: 0 installs, 0 updates, 5 removals

  - Removing click (8.1.7)
  - Removing mypy-extensions (1.0.0)
  - Removing packaging (24.0)
  - Removing pathspec (0.12.1)
  - Removing platformdirs (4.2.0)

Writing lock file
bthayer@gazelle:~/black-poetry-pypi$ 

Unsurprisingly, black is now broken due to missing dependencies:

bthayer@gazelle:~/black-poetry-pypi$ poetry run python -c "import black"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "src/black/__init__.py", line 31, in <module>
ModuleNotFoundError: No module named 'click'

Sure enough, if we inspect poetry.lock, we see no dependencies for black:

# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.

[[package]]
name = "black"
version = "24.4.0"
description = ""
optional = false
python-versions = "*"
files = [
    {file = "black-24.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6ad001a9ddd9b8dfd1b434d566be39b1cd502802c8d38bbb1ba612afda2ef436"},
    {file = "black-24.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3a3a092b8b756c643fe45f4624dbd5a389f770a4ac294cf4d0fce6af86addaf"},
    {file = "black-24.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae79397f367ac8d7adb6c779813328f6d690943f64b32983e896bcccd18cbad"},
    {file = "black-24.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:71d998b73c957444fb7c52096c3843875f4b6b47a54972598741fe9a7f737fcb"},
    {file = "black-24.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8e5537f456a22cf5cfcb2707803431d2feeb82ab3748ade280d6ccd0b40ed2e8"},
    {file = "black-24.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64e60a7edd71fd542a10a9643bf369bfd2644de95ec71e86790b063aa02ff745"},
    {file = "black-24.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd5b4f76056cecce3e69b0d4c228326d2595f506797f40b9233424e2524c070"},
    {file = "black-24.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:64578cf99b6b46a6301bc28bdb89f9d6f9b592b1c5837818a177c98525dbe397"},
    {file = "black-24.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f95cece33329dc4aa3b0e1a771c41075812e46cf3d6e3f1dfe3d91ff09826ed2"},
    {file = "black-24.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4396ca365a4310beef84d446ca5016f671b10f07abdba3e4e4304218d2c71d33"},
    {file = "black-24.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d99dfdf37a2a00a6f7a8dcbd19edf361d056ee51093b2445de7ca09adac965"},
    {file = "black-24.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:21f9407063ec71c5580b8ad975653c66508d6a9f57bd008bb8691d273705adcd"},
    {file = "black-24.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:652e55bb722ca026299eb74e53880ee2315b181dfdd44dca98e43448620ddec1"},
    {file = "black-24.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f2966b9b2b3b7104fca9d75b2ee856fe3fdd7ed9e47c753a4bb1a675f2caab8"},
    {file = "black-24.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bb9ca06e556a09f7f7177bc7cb604e5ed2d2df1e9119e4f7d2f1f7071c32e5d"},
    {file = "black-24.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4e71cdebdc8efeb6deaf5f2deb28325f8614d48426bed118ecc2dcaefb9ebf3"},
    {file = "black-24.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6644f97a7ef6f401a150cca551a1ff97e03c25d8519ee0bbc9b0058772882665"},
    {file = "black-24.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75a2d0b4f5eb81f7eebc31f788f9830a6ce10a68c91fbe0fade34fff7a2836e6"},
    {file = "black-24.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb949f56a63c5e134dfdca12091e98ffb5fd446293ebae123d10fc1abad00b9e"},
    {file = "black-24.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:7852b05d02b5b9a8c893ab95863ef8986e4dda29af80bbbda94d7aee1abf8702"},
    {file = "black-24.4.0-py3-none-any.whl", hash = "sha256:74eb9b5420e26b42c00a3ff470dc0cd144b80a766128b1771d07643165e08d0e"},
    {file = "black-24.4.0.tar.gz", hash = "sha256:f07b69fda20578367eaebbd670ff8fc653ab181e1ff95d84497f9fa20e7d0641"},
]

[package.source]
type = "legacy"
url = "https://utilidata-015714471061.d.codeartifact.us-east-1.amazonaws.com/pypi/sgc/simple"
reference = "ca"

[metadata]
lock-version = "2.0"
python-versions = "^3.11"
content-hash = "347e8dde6a9547e4c841c9c24b08d62f53dc326549fe7ebe732db3cd15a1ae9c"

Notice the hashes for my system's wheel are identical from the previous section. From the poetry.lock file that used PyPI:

{file = "black-24.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd5b4f76056cecce3e69b0d4c228326d2595f506797f40b9233424e2524c070"},

From the poetry.lock file that used AWS CodeArtifact:

{file = "black-24.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd5b4f76056cecce3e69b0d4c228326d2595f506797f40b9233424e2524c070"},

So the wheels are IDENTICAL, but poetry is handling the one source from CodeArtifact differently than the one sourced from PyPI

Installing an Older Version of black from AWS CodeArtifact Works Fine

Building on the previous section with the CodeArtifact source (name = "ca") in pyproject.toml, update the entry for black from black = "24.4.0" to black = "<24.4.0" and update:

bthayer@gazelle:~/black-poetry-pypi$ nano pyproject.toml 
bthayer@gazelle:~/black-poetry-pypi$ poetry update
Updating dependencies
Resolving dependencies... (2.6s)

Package operations: 5 installs, 1 update, 0 removals

  - Installing click (8.1.7)
  - Installing mypy-extensions (1.0.0)
  - Installing packaging (24.0)
  - Installing pathspec (0.12.1)
  - Installing platformdirs (4.2.0)
  - Downgrading black (24.4.0 -> 24.3.0)

Writing lock file
bthayer@gazelle:~/black-poetry-pypi$ poetry run python -c "import black"

Workarounds

For my special use-case of installing black from private AWS CodeArtifact repository, use black = "<24.4.0" in pyproject.toml

Poetry Installation Method

install.python-poetry.org

Operating System

Pop!_OS 22.04 LTS

Poetry Version

Poetry (version 1.8.2)

Poetry Configuration

bthayer@gazelle:~$ poetry config --list
cache-dir = "/home/bthayer/.cache/pypoetry"
experimental.system-git-client = false
installer.max-workers = null
installer.modern-installation = true
installer.no-binary = null
installer.parallel = true
keyring.enabled = true
solver.lazy-wheel = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/bthayer/.cache/pypoetry/virtualenvs
virtualenvs.prefer-active-python = true
virtualenvs.prompt = "{project_name}-py{python_version}"
warnings.export = true

Python Sysconfig

Platform: "linux-x86_64"
Python version: "3.11"
Current installation scheme: "posix_prefix"

Paths: 
	data = "/home/bthayer/.pyenv/versions/3.11.7"
	include = "/home/bthayer/.pyenv/versions/3.11.7/include/python3.11"
	platinclude = "/home/bthayer/.pyenv/versions/3.11.7/include/python3.11"
	platlib = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/site-packages"
	platstdlib = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11"
	purelib = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/site-packages"
	scripts = "/home/bthayer/.pyenv/versions/3.11.7/bin"
	stdlib = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11"

Variables: 
	ABIFLAGS = ""
	AC_APPLE_UNIVERSAL_BUILD = "0"
	AIX_BUILDDATE = "0"
	AIX_GENUINE_CPLUSPLUS = "0"
	ALIGNOF_LONG = "8"
	ALIGNOF_SIZE_T = "8"
	ALT_SOABI = "0"
	ANDROID_API_LEVEL = "0"
	AR = "ar"
	ARFLAGS = "rcs"
	BASECFLAGS = "-Wsign-compare"
	BASECPPFLAGS = ""
	BASEMODLIBS = ""
	BINDIR = "/home/bthayer/.pyenv/versions/3.11.7/bin"
	BINLIBDEST = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11"
	BLDLIBRARY = "-L. -lpython3.11"
	BLDSHARED = "gcc -shared -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	BOOTSTRAP_HEADERS = "\"
	BUILDEXE = ""
	BUILDPYTHON = "python"
	BUILD_GNU_TYPE = "x86_64-pc-linux-gnu"
	BYTESTR_DEPS = "\"
	CC = "gcc"
	CCSHARED = "-fPIC"
	CFLAGS = "-Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall"
	CFLAGSFORSHARED = "-fPIC"
	CFLAGS_ALIASING = ""
	CFLAGS_NODIST = ""
	CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
	CONFIGURE_CFLAGS = ""
	CONFIGURE_CFLAGS_NODIST = "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden"
	CONFIGURE_CPPFLAGS = "-I/home/bthayer/.pyenv/versions/3.11.7/include"
	CONFIGURE_LDFLAGS = "-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	CONFIGURE_LDFLAGS_NODIST = ""
	CONFIGURE_LDFLAGS_NOLTO = ""
	CONFIG_ARGS = "'--prefix=/home/bthayer/.pyenv/versions/3.11.7' '--enable-shared' '--libdir=/home/bthayer/.pyenv/versions/3.11.7/lib' 'LDFLAGS=-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib' 'LIBS=-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib' 'CPPFLAGS=-I/home/bthayer/.pyenv/versions/3.11.7/include'"
	CONFINCLUDEDIR = "/home/bthayer/.pyenv/versions/3.11.7/include"
	CONFINCLUDEPY = "/home/bthayer/.pyenv/versions/3.11.7/include/python3.11"
	COREPYTHONPATH = ""
	COVERAGE_INFO = "/tmp/python-build.20240110080837.26561/Python-3.11.7/coverage.info"
	COVERAGE_LCOV_OPTIONS = "--rc lcov_branch_coverage=1"
	COVERAGE_REPORT = "/tmp/python-build.20240110080837.26561/Python-3.11.7/lcov-report"
	COVERAGE_REPORT_OPTIONS = "--rc lcov_branch_coverage=1 --branch-coverage --title "CPython 3.11 LCOV report [commit $(shell )]""
	CPPFLAGS = "-I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include"
	CXX = "g++"
	DECIMAL_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1"
	DECIMAL_LDFLAGS = "-lm Modules/_decimal/libmpdec/libmpdec.a"
	DEEPFREEZE_C = "Python/deepfreeze/deepfreeze.c"
	DEEPFREEZE_DEPS = "./Tools/scripts/deepfreeze.py _bootstrap_python ./Programs/_freeze_module.py \"
	DEEPFREEZE_OBJS = "Python/deepfreeze/deepfreeze.o"
	DESTDIRS = "/home/bthayer/.pyenv/versions/3.11.7 /home/bthayer/.pyenv/versions/3.11.7/lib /home/bthayer/.pyenv/versions/3.11.7/lib/python3.11 /home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/lib-dynload"
	DESTLIB = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11"
	DESTPATH = ""
	DESTSHARED = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/lib-dynload"
	DFLAGS = ""
	DIRMODE = "755"
	DIST = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Ext-dummy"
	DISTDIRS = "Include Lib Misc Ext-dummy"
	DISTFILES = "README.rst ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
	DLINCLDIR = "."
	DLLLIBRARY = ""
	DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 = "0"
	DOUBLE_IS_BIG_ENDIAN_IEEE754 = "0"
	DOUBLE_IS_LITTLE_ENDIAN_IEEE754 = "1"
	DTRACE = ""
	DTRACE_DEPS = "\"
	DTRACE_HEADERS = ""
	DTRACE_OBJS = ""
	DYNLOADFILE = "dynload_shlib.o"
	ENABLE_IPV6 = "1"
	ENSUREPIP = "upgrade"
	EXE = ""
	EXEMODE = "755"
	EXPAT_CFLAGS = "-I./Modules/expat"
	EXPAT_LDFLAGS = "-lm Modules/expat/libexpat.a"
	EXPORTSFROM = ""
	EXPORTSYMS = ""
	EXTRATESTOPTS = ""
	EXTRA_CFLAGS = ""
	EXT_SUFFIX = ".cpython-311-x86_64-linux-gnu.so"
	FILEMODE = "644"
	FLOAT_WORDS_BIGENDIAN = "0"
	FREEZE_MODULE = "./_bootstrap_python ./Programs/_freeze_module.py"
	FREEZE_MODULE_BOOTSTRAP = "./Programs/_freeze_module"
	FREEZE_MODULE_BOOTSTRAP_DEPS = "Programs/_freeze_module"
	FREEZE_MODULE_DEPS = "_bootstrap_python ./Programs/_freeze_module.py"
	FROZEN_FILES_IN = "\"
	FROZEN_FILES_OUT = "\"
	GETPGRP_HAVE_ARG = "0"
	GITBRANCH = ""
	GITTAG = ""
	GITVERSION = ""
	GNULD = "yes"
	HAVE_ACCEPT = "1"
	HAVE_ACCEPT4 = "1"
	HAVE_ACOSH = "1"
	HAVE_ADDRINFO = "1"
	HAVE_ALARM = "1"
	HAVE_ALIGNED_REQUIRED = "0"
	HAVE_ALLOCA_H = "1"
	HAVE_ALTZONE = "0"
	HAVE_ASINH = "1"
	HAVE_ASM_TYPES_H = "1"
	HAVE_ATANH = "1"
	HAVE_BIND = "1"
	HAVE_BIND_TEXTDOMAIN_CODESET = "1"
	HAVE_BLUETOOTH_BLUETOOTH_H = "0"
	HAVE_BLUETOOTH_H = "0"
	HAVE_BROKEN_MBSTOWCS = "0"
	HAVE_BROKEN_NICE = "0"
	HAVE_BROKEN_PIPE_BUF = "0"
	HAVE_BROKEN_POLL = "0"
	HAVE_BROKEN_POSIX_SEMAPHORES = "0"
	HAVE_BROKEN_PTHREAD_SIGMASK = "0"
	HAVE_BROKEN_SEM_GETVALUE = "0"
	HAVE_BROKEN_UNSETENV = "0"
	HAVE_BUILTIN_ATOMIC = "1"
	HAVE_BZLIB_H = "1"
	HAVE_CHFLAGS = "0"
	HAVE_CHMOD = "1"
	HAVE_CHOWN = "1"
	HAVE_CHROOT = "1"
	HAVE_CLOCK = "1"
	HAVE_CLOCK_GETRES = "1"
	HAVE_CLOCK_GETTIME = "1"
	HAVE_CLOCK_NANOSLEEP = "1"
	HAVE_CLOCK_SETTIME = "1"
	HAVE_CLOSE_RANGE = "1"
	HAVE_COMPUTED_GOTOS = "1"
	HAVE_CONFSTR = "1"
	HAVE_CONIO_H = "0"
	HAVE_CONNECT = "1"
	HAVE_COPY_FILE_RANGE = "1"
	HAVE_CRYPT_H = "1"
	HAVE_CRYPT_R = "1"
	HAVE_CTERMID = "1"
	HAVE_CTERMID_R = "0"
	HAVE_CURSES_FILTER = "1"
	HAVE_CURSES_H = "1"
	HAVE_CURSES_HAS_KEY = "1"
	HAVE_CURSES_IMMEDOK = "1"
	HAVE_CURSES_IS_PAD = "1"
	HAVE_CURSES_IS_TERM_RESIZED = "1"
	HAVE_CURSES_RESIZETERM = "1"
	HAVE_CURSES_RESIZE_TERM = "1"
	HAVE_CURSES_SYNCOK = "1"
	HAVE_CURSES_TYPEAHEAD = "1"
	HAVE_CURSES_USE_ENV = "1"
	HAVE_CURSES_WCHGAT = "1"
	HAVE_DB_H = "0"
	HAVE_DECL_RTLD_DEEPBIND = "1"
	HAVE_DECL_RTLD_GLOBAL = "1"
	HAVE_DECL_RTLD_LAZY = "1"
	HAVE_DECL_RTLD_LOCAL = "1"
	HAVE_DECL_RTLD_MEMBER = "0"
	HAVE_DECL_RTLD_NODELETE = "1"
	HAVE_DECL_RTLD_NOLOAD = "1"
	HAVE_DECL_RTLD_NOW = "1"
	HAVE_DECL_TZNAME = "0"
	HAVE_DEVICE_MACROS = "1"
	HAVE_DEV_PTC = "0"
	HAVE_DEV_PTMX = "1"
	HAVE_DIRECT_H = "0"
	HAVE_DIRENT_D_TYPE = "1"
	HAVE_DIRENT_H = "1"
	HAVE_DIRFD = "1"
	HAVE_DLFCN_H = "1"
	HAVE_DLOPEN = "1"
	HAVE_DUP = "1"
	HAVE_DUP2 = "1"
	HAVE_DUP3 = "1"
	HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "0"
	HAVE_DYNAMIC_LOADING = "1"
	HAVE_ENDIAN_H = "1"
	HAVE_EPOLL = "1"
	HAVE_EPOLL_CREATE1 = "1"
	HAVE_ERF = "1"
	HAVE_ERFC = "1"
	HAVE_ERRNO_H = "1"
	HAVE_EVENTFD = "1"
	HAVE_EXECV = "1"
	HAVE_EXPLICIT_BZERO = "1"
	HAVE_EXPLICIT_MEMSET = "0"
	HAVE_EXPM1 = "1"
	HAVE_FACCESSAT = "1"
	HAVE_FCHDIR = "1"
	HAVE_FCHMOD = "1"
	HAVE_FCHMODAT = "1"
	HAVE_FCHOWN = "1"
	HAVE_FCHOWNAT = "1"
	HAVE_FCNTL_H = "1"
	HAVE_FDATASYNC = "1"
	HAVE_FDOPENDIR = "1"
	HAVE_FDWALK = "0"
	HAVE_FEXECVE = "1"
	HAVE_FLOCK = "1"
	HAVE_FORK = "1"
	HAVE_FORK1 = "0"
	HAVE_FORKPTY = "1"
	HAVE_FPATHCONF = "1"
	HAVE_FSEEK64 = "0"
	HAVE_FSEEKO = "1"
	HAVE_FSTATAT = "1"
	HAVE_FSTATVFS = "1"
	HAVE_FSYNC = "1"
	HAVE_FTELL64 = "0"
	HAVE_FTELLO = "1"
	HAVE_FTIME = "1"
	HAVE_FTRUNCATE = "1"
	HAVE_FUTIMENS = "1"
	HAVE_FUTIMES = "1"
	HAVE_FUTIMESAT = "1"
	HAVE_GAI_STRERROR = "1"
	HAVE_GCC_ASM_FOR_MC68881 = "0"
	HAVE_GCC_ASM_FOR_X64 = "1"
	HAVE_GCC_ASM_FOR_X87 = "1"
	HAVE_GCC_UINT128_T = "1"
	HAVE_GDBM_DASH_NDBM_H = "0"
	HAVE_GDBM_H = "0"
	HAVE_GDBM_NDBM_H = "0"
	HAVE_GETADDRINFO = "1"
	HAVE_GETC_UNLOCKED = "1"
	HAVE_GETEGID = "1"
	HAVE_GETENTROPY = "1"
	HAVE_GETEUID = "1"
	HAVE_GETGID = "1"
	HAVE_GETGRGID = "1"
	HAVE_GETGRGID_R = "1"
	HAVE_GETGRNAM_R = "1"
	HAVE_GETGROUPLIST = "1"
	HAVE_GETGROUPS = "1"
	HAVE_GETHOSTBYADDR = "1"
	HAVE_GETHOSTBYNAME = "1"
	HAVE_GETHOSTBYNAME_R = "1"
	HAVE_GETHOSTBYNAME_R_3_ARG = "0"
	HAVE_GETHOSTBYNAME_R_5_ARG = "0"
	HAVE_GETHOSTBYNAME_R_6_ARG = "1"
	HAVE_GETHOSTNAME = "1"
	HAVE_GETITIMER = "1"
	HAVE_GETLOADAVG = "1"
	HAVE_GETLOGIN = "1"
	HAVE_GETNAMEINFO = "1"
	HAVE_GETPAGESIZE = "1"
	HAVE_GETPEERNAME = "1"
	HAVE_GETPGID = "1"
	HAVE_GETPGRP = "1"
	HAVE_GETPID = "1"
	HAVE_GETPPID = "1"
	HAVE_GETPRIORITY = "1"
	HAVE_GETPROTOBYNAME = "1"
	HAVE_GETPWENT = "1"
	HAVE_GETPWNAM_R = "1"
	HAVE_GETPWUID = "1"
	HAVE_GETPWUID_R = "1"
	HAVE_GETRANDOM = "1"
	HAVE_GETRANDOM_SYSCALL = "1"
	HAVE_GETRESGID = "1"
	HAVE_GETRESUID = "1"
	HAVE_GETRUSAGE = "1"
	HAVE_GETSERVBYNAME = "1"
	HAVE_GETSERVBYPORT = "1"
	HAVE_GETSID = "1"
	HAVE_GETSOCKNAME = "1"
	HAVE_GETSPENT = "1"
	HAVE_GETSPNAM = "1"
	HAVE_GETUID = "1"
	HAVE_GETWD = "1"
	HAVE_GLIBC_MEMMOVE_BUG = "0"
	HAVE_GRP_H = "1"
	HAVE_HSTRERROR = "1"
	HAVE_HTOLE64 = "1"
	HAVE_IEEEFP_H = "0"
	HAVE_IF_NAMEINDEX = "1"
	HAVE_INET_ATON = "1"
	HAVE_INET_NTOA = "1"
	HAVE_INET_PTON = "1"
	HAVE_INITGROUPS = "1"
	HAVE_INTTYPES_H = "1"
	HAVE_IO_H = "0"
	HAVE_IPA_PURE_CONST_BUG = "0"
	HAVE_KILL = "1"
	HAVE_KILLPG = "1"
	HAVE_KQUEUE = "0"
	HAVE_LANGINFO_H = "1"
	HAVE_LARGEFILE_SUPPORT = "0"
	HAVE_LCHFLAGS = "0"
	HAVE_LCHMOD = "0"
	HAVE_LCHOWN = "1"
	HAVE_LIBB2 = "0"
	HAVE_LIBDB = "0"
	HAVE_LIBDL = "1"
	HAVE_LIBDLD = "0"
	HAVE_LIBGDBM_COMPAT = "0"
	HAVE_LIBIEEE = "0"
	HAVE_LIBINTL_H = "1"
	HAVE_LIBNDBM = "0"
	HAVE_LIBREADLINE = "1"
	HAVE_LIBRESOLV = "0"
	HAVE_LIBSENDFILE = "0"
	HAVE_LIBSQLITE3 = "1"
	HAVE_LIBUTIL_H = "0"
	HAVE_LINK = "1"
	HAVE_LINKAT = "1"
	HAVE_LINUX_AUXVEC_H = "1"
	HAVE_LINUX_CAN_BCM_H = "1"
	HAVE_LINUX_CAN_H = "1"
	HAVE_LINUX_CAN_J1939_H = "1"
	HAVE_LINUX_CAN_RAW_FD_FRAMES = "1"
	HAVE_LINUX_CAN_RAW_H = "1"
	HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "1"
	HAVE_LINUX_LIMITS_H = "1"
	HAVE_LINUX_MEMFD_H = "1"
	HAVE_LINUX_NETLINK_H = "1"
	HAVE_LINUX_QRTR_H = "1"
	HAVE_LINUX_RANDOM_H = "1"
	HAVE_LINUX_SOUNDCARD_H = "1"
	HAVE_LINUX_TIPC_H = "1"
	HAVE_LINUX_VM_SOCKETS_H = "1"
	HAVE_LINUX_WAIT_H = "1"
	HAVE_LISTEN = "1"
	HAVE_LOCKF = "1"
	HAVE_LOG1P = "1"
	HAVE_LOG2 = "1"
	HAVE_LOGIN_TTY = "1"
	HAVE_LONG_DOUBLE = "1"
	HAVE_LSTAT = "1"
	HAVE_LUTIMES = "1"
	HAVE_LZMA_H = "0"
	HAVE_MADVISE = "1"
	HAVE_MAKEDEV = "1"
	HAVE_MBRTOWC = "1"
	HAVE_MEMFD_CREATE = "1"
	HAVE_MEMORY_H = "1"
	HAVE_MEMRCHR = "1"
	HAVE_MKDIRAT = "1"
	HAVE_MKFIFO = "1"
	HAVE_MKFIFOAT = "1"
	HAVE_MKNOD = "1"
	HAVE_MKNODAT = "1"
	HAVE_MKTIME = "1"
	HAVE_MMAP = "1"
	HAVE_MREMAP = "1"
	HAVE_NANOSLEEP = "1"
	HAVE_NCURSES_H = "1"
	HAVE_NDBM_H = "0"
	HAVE_NDIR_H = "0"
	HAVE_NETCAN_CAN_H = "0"
	HAVE_NETDB_H = "1"
	HAVE_NETINET_IN_H = "1"
	HAVE_NETPACKET_PACKET_H = "1"
	HAVE_NET_IF_H = "1"
	HAVE_NICE = "1"
	HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0"
	HAVE_OPENAT = "1"
	HAVE_OPENDIR = "1"
	HAVE_OPENPTY = "1"
	HAVE_PATHCONF = "1"
	HAVE_PAUSE = "1"
	HAVE_PIPE = "1"
	HAVE_PIPE2 = "1"
	HAVE_PLOCK = "0"
	HAVE_POLL = "1"
	HAVE_POLL_H = "1"
	HAVE_POSIX_FADVISE = "1"
	HAVE_POSIX_FALLOCATE = "1"
	HAVE_POSIX_SPAWN = "1"
	HAVE_POSIX_SPAWNP = "1"
	HAVE_PREAD = "1"
	HAVE_PREADV = "1"
	HAVE_PREADV2 = "1"
	HAVE_PRLIMIT = "1"
	HAVE_PROCESS_H = "0"
	HAVE_PROTOTYPES = "1"
	HAVE_PTHREAD_CONDATTR_SETCLOCK = "1"
	HAVE_PTHREAD_DESTRUCTOR = "0"
	HAVE_PTHREAD_GETCPUCLOCKID = "1"
	HAVE_PTHREAD_H = "1"
	HAVE_PTHREAD_INIT = "0"
	HAVE_PTHREAD_KILL = "1"
	HAVE_PTHREAD_SIGMASK = "1"
	HAVE_PTHREAD_STUBS = "0"
	HAVE_PTY_H = "1"
	HAVE_PWRITE = "1"
	HAVE_PWRITEV = "1"
	HAVE_PWRITEV2 = "1"
	HAVE_READLINK = "1"
	HAVE_READLINKAT = "1"
	HAVE_READV = "1"
	HAVE_REALPATH = "1"
	HAVE_RECVFROM = "1"
	HAVE_RENAMEAT = "1"
	HAVE_RL_APPEND_HISTORY = "1"
	HAVE_RL_CATCH_SIGNAL = "1"
	HAVE_RL_COMPDISP_FUNC_T = "1"
	HAVE_RL_COMPLETION_APPEND_CHARACTER = "1"
	HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK = "1"
	HAVE_RL_COMPLETION_MATCHES = "1"
	HAVE_RL_COMPLETION_SUPPRESS_APPEND = "1"
	HAVE_RL_PRE_INPUT_HOOK = "1"
	HAVE_RL_RESIZE_TERMINAL = "1"
	HAVE_RPC_RPC_H = "1"
	HAVE_RTPSPAWN = "0"
	HAVE_SCHED_GET_PRIORITY_MAX = "1"
	HAVE_SCHED_H = "1"
	HAVE_SCHED_RR_GET_INTERVAL = "1"
	HAVE_SCHED_SETAFFINITY = "1"
	HAVE_SCHED_SETPARAM = "1"
	HAVE_SCHED_SETSCHEDULER = "1"
	HAVE_SEM_CLOCKWAIT = "1"
	HAVE_SEM_GETVALUE = "1"
	HAVE_SEM_OPEN = "1"
	HAVE_SEM_TIMEDWAIT = "1"
	HAVE_SEM_UNLINK = "1"
	HAVE_SENDFILE = "1"
	HAVE_SENDTO = "1"
	HAVE_SETEGID = "1"
	HAVE_SETEUID = "1"
	HAVE_SETGID = "1"
	HAVE_SETGROUPS = "1"
	HAVE_SETHOSTNAME = "1"
	HAVE_SETITIMER = "1"
	HAVE_SETJMP_H = "1"
	HAVE_SETLOCALE = "1"
	HAVE_SETPGID = "1"
	HAVE_SETPGRP = "1"
	HAVE_SETPRIORITY = "1"
	HAVE_SETREGID = "1"
	HAVE_SETRESGID = "1"
	HAVE_SETRESUID = "1"
	HAVE_SETREUID = "1"
	HAVE_SETSID = "1"
	HAVE_SETSOCKOPT = "1"
	HAVE_SETUID = "1"
	HAVE_SETVBUF = "1"
	HAVE_SHADOW_H = "1"
	HAVE_SHM_OPEN = "1"
	HAVE_SHM_UNLINK = "1"
	HAVE_SHUTDOWN = "1"
	HAVE_SIGACTION = "1"
	HAVE_SIGALTSTACK = "1"
	HAVE_SIGFILLSET = "1"
	HAVE_SIGINFO_T_SI_BAND = "1"
	HAVE_SIGINTERRUPT = "1"
	HAVE_SIGNAL_H = "1"
	HAVE_SIGPENDING = "1"
	HAVE_SIGRELSE = "1"
	HAVE_SIGTIMEDWAIT = "1"
	HAVE_SIGWAIT = "1"
	HAVE_SIGWAITINFO = "1"
	HAVE_SNPRINTF = "1"
	HAVE_SOCKADDR_ALG = "1"
	HAVE_SOCKADDR_SA_LEN = "0"
	HAVE_SOCKADDR_STORAGE = "1"
	HAVE_SOCKET = "1"
	HAVE_SOCKETPAIR = "1"
	HAVE_SPAWN_H = "1"
	HAVE_SPLICE = "1"
	HAVE_SSIZE_T = "1"
	HAVE_STATVFS = "1"
	HAVE_STAT_TV_NSEC = "1"
	HAVE_STAT_TV_NSEC2 = "0"
	HAVE_STDARG_PROTOTYPES = "1"
	HAVE_STDINT_H = "1"
	HAVE_STDLIB_H = "1"
	HAVE_STD_ATOMIC = "1"
	HAVE_STRFTIME = "1"
	HAVE_STRINGS_H = "1"
	HAVE_STRING_H = "1"
	HAVE_STRLCPY = "0"
	HAVE_STROPTS_H = "0"
	HAVE_STRSIGNAL = "1"
	HAVE_STRUCT_PASSWD_PW_GECOS = "1"
	HAVE_STRUCT_PASSWD_PW_PASSWD = "1"
	HAVE_STRUCT_STAT_ST_BIRTHTIME = "0"
	HAVE_STRUCT_STAT_ST_BLKSIZE = "1"
	HAVE_STRUCT_STAT_ST_BLOCKS = "1"
	HAVE_STRUCT_STAT_ST_FLAGS = "0"
	HAVE_STRUCT_STAT_ST_GEN = "0"
	HAVE_STRUCT_STAT_ST_RDEV = "1"
	HAVE_STRUCT_TM_TM_ZONE = "1"
	HAVE_SYMLINK = "1"
	HAVE_SYMLINKAT = "1"
	HAVE_SYNC = "1"
	HAVE_SYSCONF = "1"
	HAVE_SYSEXITS_H = "1"
	HAVE_SYSLOG_H = "1"
	HAVE_SYSTEM = "1"
	HAVE_SYS_AUDIOIO_H = "0"
	HAVE_SYS_AUXV_H = "1"
	HAVE_SYS_BSDTTY_H = "0"
	HAVE_SYS_DEVPOLL_H = "0"
	HAVE_SYS_DIR_H = "0"
	HAVE_SYS_ENDIAN_H = "0"
	HAVE_SYS_EPOLL_H = "1"
	HAVE_SYS_EVENTFD_H = "1"
	HAVE_SYS_EVENT_H = "0"
	HAVE_SYS_FILE_H = "1"
	HAVE_SYS_IOCTL_H = "1"
	HAVE_SYS_KERN_CONTROL_H = "0"
	HAVE_SYS_LOADAVG_H = "0"
	HAVE_SYS_LOCK_H = "0"
	HAVE_SYS_MEMFD_H = "0"
	HAVE_SYS_MKDEV_H = "0"
	HAVE_SYS_MMAN_H = "1"
	HAVE_SYS_MODEM_H = "0"
	HAVE_SYS_NDIR_H = "0"
	HAVE_SYS_PARAM_H = "1"
	HAVE_SYS_POLL_H = "1"
	HAVE_SYS_RANDOM_H = "1"
	HAVE_SYS_RESOURCE_H = "1"
	HAVE_SYS_SELECT_H = "1"
	HAVE_SYS_SENDFILE_H = "1"
	HAVE_SYS_SOCKET_H = "1"
	HAVE_SYS_SOUNDCARD_H = "1"
	HAVE_SYS_STATVFS_H = "1"
	HAVE_SYS_STAT_H = "1"
	HAVE_SYS_SYSCALL_H = "1"
	HAVE_SYS_SYSMACROS_H = "1"
	HAVE_SYS_SYS_DOMAIN_H = "0"
	HAVE_SYS_TERMIO_H = "0"
	HAVE_SYS_TIMES_H = "1"
	HAVE_SYS_TIME_H = "1"
	HAVE_SYS_TYPES_H = "1"
	HAVE_SYS_UIO_H = "1"
	HAVE_SYS_UN_H = "1"
	HAVE_SYS_UTSNAME_H = "1"
	HAVE_SYS_WAIT_H = "1"
	HAVE_SYS_XATTR_H = "1"
	HAVE_TCGETPGRP = "1"
	HAVE_TCSETPGRP = "1"
	HAVE_TEMPNAM = "1"
	HAVE_TERMIOS_H = "1"
	HAVE_TERM_H = "1"
	HAVE_TIMEGM = "1"
	HAVE_TIMES = "1"
	HAVE_TMPFILE = "1"
	HAVE_TMPNAM = "1"
	HAVE_TMPNAM_R = "1"
	HAVE_TM_ZONE = "1"
	HAVE_TRUNCATE = "1"
	HAVE_TTYNAME = "1"
	HAVE_TZNAME = "0"
	HAVE_UMASK = "1"
	HAVE_UNAME = "1"
	HAVE_UNISTD_H = "1"
	HAVE_UNLINKAT = "1"
	HAVE_USABLE_WCHAR_T = "0"
	HAVE_UTIL_H = "0"
	HAVE_UTIMENSAT = "1"
	HAVE_UTIMES = "1"
	HAVE_UTIME_H = "1"
	HAVE_UTMP_H = "1"
	HAVE_UUID_CREATE = "0"
	HAVE_UUID_ENC_BE = "0"
	HAVE_UUID_GENERATE_TIME_SAFE = "1"
	HAVE_UUID_H = "1"
	HAVE_UUID_UUID_H = "0"
	HAVE_VFORK = "1"
	HAVE_WAIT = "1"
	HAVE_WAIT3 = "1"
	HAVE_WAIT4 = "1"
	HAVE_WAITID = "1"
	HAVE_WAITPID = "1"
	HAVE_WCHAR_H = "1"
	HAVE_WCSCOLL = "1"
	HAVE_WCSFTIME = "1"
	HAVE_WCSXFRM = "1"
	HAVE_WMEMCMP = "1"
	HAVE_WORKING_TZSET = "1"
	HAVE_WRITEV = "1"
	HAVE_ZLIB_COPY = "1"
	HAVE_ZLIB_H = "0"
	HAVE__GETPTY = "0"
	HOSTRUNNER = ""
	HOST_GNU_TYPE = "x86_64-pc-linux-gnu"
	INCLDIRSTOMAKE = "/home/bthayer/.pyenv/versions/3.11.7/include /home/bthayer/.pyenv/versions/3.11.7/include /home/bthayer/.pyenv/versions/3.11.7/include/python3.11 /home/bthayer/.pyenv/versions/3.11.7/include/python3.11"
	INCLUDEDIR = "/home/bthayer/.pyenv/versions/3.11.7/include"
	INCLUDEPY = "/home/bthayer/.pyenv/versions/3.11.7/include/python3.11"
	INSTALL = "/usr/bin/install -c"
	INSTALL_DATA = "/usr/bin/install -c -m 644"
	INSTALL_PROGRAM = "/usr/bin/install -c"
	INSTALL_SCRIPT = "/usr/bin/install -c"
	INSTALL_SHARED = "/usr/bin/install -c -m 755"
	INSTSONAME = "libpython3.11.so.1.0"
	IO_H = "Modules/_io/_iomodule.h"
	IO_OBJS = "\"
	LDCXXSHARED = "g++ -shared"
	LDFLAGS = "-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	LDFLAGS_NODIST = ""
	LDLIBRARY = "libpython3.11.so"
	LDLIBRARYDIR = ""
	LDSHARED = "gcc -shared -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	LDVERSION = "3.11"
	LIBC = ""
	LIBDEST = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11"
	LIBDIR = "/home/bthayer/.pyenv/versions/3.11.7/lib"
	LIBEXPAT_A = "Modules/expat/libexpat.a"
	LIBEXPAT_CFLAGS = "-I./Modules/expat -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include -fPIC -fPIC"
	LIBEXPAT_HEADERS = "\"
	LIBEXPAT_OBJS = "\"
	LIBFFI_INCLUDEDIR = ""
	LIBM = "-lm"
	LIBMPDEC_A = "Modules/_decimal/libmpdec/libmpdec.a"
	LIBMPDEC_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1 -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include -fPIC -fPIC"
	LIBMPDEC_HEADERS = "\"
	LIBMPDEC_OBJS = "\"
	LIBOBJDIR = "Python/"
	LIBOBJS = ""
	LIBPC = "/home/bthayer/.pyenv/versions/3.11.7/lib/pkgconfig"
	LIBPL = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/config-3.11-x86_64-linux-gnu"
	LIBPYTHON = ""
	LIBRARY = "libpython3.11.a"
	LIBRARY_DEPS = "libpython3.11.a libpython3.11.so libpython3.so"
	LIBRARY_OBJS = "\"
	LIBRARY_OBJS_OMIT_FROZEN = "\"
	LIBS = "-ldl -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	LIBSUBDIRS = "asyncio \"
	LINKCC = "gcc"
	LINKFORSHARED = "-Xlinker -export-dynamic"
	LINK_PYTHON_DEPS = "libpython3.11.a libpython3.11.so libpython3.so"
	LINK_PYTHON_OBJS = "-L. -lpython3.11"
	LIPO_32BIT_FLAGS = ""
	LIPO_INTEL64_FLAGS = ""
	LLVM_PROF_ERR = "no"
	LLVM_PROF_FILE = ""
	LLVM_PROF_MERGER = "true"
	LN = "ln"
	LOCALMODLIBS = ""
	MACHDEP = "linux"
	MACHDEP_OBJS = ""
	MACHDESTLIB = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11"
	MACOSX_DEPLOYMENT_TARGET = ""
	MAINCC = "gcc"
	MAJOR_IN_MKDEV = "0"
	MAJOR_IN_SYSMACROS = "1"
	MAKESETUP = "./Modules/makesetup"
	MANDIR = "/home/bthayer/.pyenv/versions/3.11.7/share/man"
	MKDIR_P = "/usr/bin/mkdir -p"
	MODBUILT_NAMES = "atexit  faulthandler  posix  _signal  _tracemalloc  _codecs  _collections  errno  _io  itertools  _sre  _thread  time  _weakref  _abc  _functools  _locale  _operator  _stat  _symtable  pwd  xxsubtype"
	MODDISABLED_NAMES = ""
	MODLIBS = ""
	MODOBJS = "Modules/atexitmodule.o  Modules/faulthandler.o  Modules/posixmodule.o  Modules/signalmodule.o  Modules/_tracemalloc.o  Modules/_codecsmodule.o  Modules/_collectionsmodule.o  Modules/errnomodule.o  Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o  Modules/itertoolsmodule.o  Modules/_sre/sre.o  Modules/_threadmodule.o  Modules/timemodule.o  Modules/_weakref.o  Modules/_abc.o  Modules/_functoolsmodule.o  Modules/_localemodule.o  Modules/_operator.o  Modules/_stat.o  Modules/symtablemodule.o  Modules/pwdmodule.o  Modules/xxsubtype.o"
	MODSHARED_NAMES = ""
	MODULE_ARRAY_STATE = "yes"
	MODULE_ATEXIT_LDFLAGS = ""
	MODULE_AUDIOOP_LDFLAGS = "-lm"
	MODULE_AUDIOOP_STATE = "yes"
	MODULE_BINASCII_CFLAGS = "-DUSE_ZLIB_CRC32"
	MODULE_BINASCII_LDFLAGS = "-lz"
	MODULE_BINASCII_STATE = "yes"
	MODULE_CMATH_DEPS = "./Modules/_math.h"
	MODULE_CMATH_LDFLAGS = "-lm"
	MODULE_CMATH_STATE = "yes"
	MODULE_ERRNO_LDFLAGS = ""
	MODULE_FAULTHANDLER_LDFLAGS = ""
	MODULE_FCNTL_LDFLAGS = ""
	MODULE_FCNTL_STATE = "yes"
	MODULE_GRP_STATE = "yes"
	MODULE_ITERTOOLS_LDFLAGS = ""
	MODULE_MATH_DEPS = "./Modules/_math.h"
	MODULE_MATH_LDFLAGS = "-lm"
	MODULE_MATH_STATE = "yes"
	MODULE_MMAP_STATE = "yes"
	MODULE_NIS_CFLAGS = "-I/usr/include/tirpc"
	MODULE_NIS_LDFLAGS = "-lnsl -ltirpc"
	MODULE_NIS_STATE = "yes"
	MODULE_OBJS = "\"
	MODULE_OSSAUDIODEV_LDFLAGS = ""
	MODULE_OSSAUDIODEV_STATE = "yes"
	MODULE_POSIX_LDFLAGS = ""
	MODULE_PWD_LDFLAGS = ""
	MODULE_PWD_STATE = "yes"
	MODULE_PYEXPAT_CFLAGS = "-I./Modules/expat"
	MODULE_PYEXPAT_DEPS = "\ Modules/expat/libexpat.a"
	MODULE_PYEXPAT_LDFLAGS = "-lm Modules/expat/libexpat.a"
	MODULE_PYEXPAT_STATE = "yes"
	MODULE_RESOURCE_STATE = "yes"
	MODULE_SELECT_STATE = "yes"
	MODULE_SPWD_STATE = "yes"
	MODULE_SYSLOG_STATE = "yes"
	MODULE_TERMIOS_STATE = "yes"
	MODULE_TIME_LDFLAGS = ""
	MODULE_TIME_STATE = "yes"
	MODULE_UNICODEDATA_DEPS = "./Modules/unicodedata_db.h ./Modules/unicodename_db.h"
	MODULE_UNICODEDATA_STATE = "yes"
	MODULE_XXLIMITED_35_STATE = "yes"
	MODULE_XXLIMITED_STATE = "yes"
	MODULE_XXSUBTYPE_LDFLAGS = ""
	MODULE_ZLIB_CFLAGS = ""
	MODULE_ZLIB_LDFLAGS = "-lz"
	MODULE_ZLIB_STATE = "yes"
	MODULE__ABC_LDFLAGS = ""
	MODULE__ASYNCIO_STATE = "yes"
	MODULE__BISECT_STATE = "yes"
	MODULE__BLAKE2_CFLAGS = ""
	MODULE__BLAKE2_DEPS = "./Modules/_blake2/impl/blake2-config.h ./Modules/_blake2/impl/blake2-impl.h ./Modules/_blake2/impl/blake2.h ./Modules/_blake2/impl/blake2b-load-sse2.h ./Modules/_blake2/impl/blake2b-load-sse41.h ./Modules/_blake2/impl/blake2b-ref.c ./Modules/_blake2/impl/blake2b-round.h ./Modules/_blake2/impl/blake2b.c ./Modules/_blake2/impl/blake2s-load-sse2.h ./Modules/_blake2/impl/blake2s-load-sse41.h ./Modules/_blake2/impl/blake2s-load-xop.h ./Modules/_blake2/impl/blake2s-ref.c ./Modules/_blake2/impl/blake2s-round.h ./Modules/_blake2/impl/blake2s.c ./Modules/_blake2/blake2module.h ./Modules/hashlib.h"
	MODULE__BLAKE2_LDFLAGS = ""
	MODULE__BLAKE2_STATE = "yes"
	MODULE__BZ2_CFLAGS = ""
	MODULE__BZ2_LDFLAGS = "-lbz2"
	MODULE__BZ2_STATE = "yes"
	MODULE__CODECS_CN_STATE = "yes"
	MODULE__CODECS_HK_STATE = "yes"
	MODULE__CODECS_ISO2022_STATE = "yes"
	MODULE__CODECS_JP_STATE = "yes"
	MODULE__CODECS_KR_STATE = "yes"
	MODULE__CODECS_LDFLAGS = ""
	MODULE__CODECS_TW_STATE = "yes"
	MODULE__COLLECTIONS_LDFLAGS = ""
	MODULE__CONTEXTVARS_STATE = "yes"
	MODULE__CRYPT_CFLAGS = ""
	MODULE__CRYPT_LDFLAGS = "-lcrypt"
	MODULE__CRYPT_STATE = "yes"
	MODULE__CSV_STATE = "yes"
	MODULE__CTYPES_DEPS = "./Modules/_ctypes/ctypes.h"
	MODULE__CTYPES_TEST_LDFLAGS = "-lm"
	MODULE__CTYPES_TEST_STATE = "yes"
	MODULE__DATETIME_LDFLAGS = "-lm"
	MODULE__DATETIME_STATE = "yes"
	MODULE__DECIMAL_CFLAGS = "-I./Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1"
	MODULE__DECIMAL_DEPS = "./Modules/_decimal/docstrings.h \ Modules/_decimal/libmpdec/libmpdec.a"
	MODULE__DECIMAL_LDFLAGS = "-lm Modules/_decimal/libmpdec/libmpdec.a"
	MODULE__DECIMAL_STATE = "yes"
	MODULE__ELEMENTTREE_CFLAGS = "-I./Modules/expat"
	MODULE__ELEMENTTREE_DEPS = "./Modules/pyexpat.c \ Modules/expat/libexpat.a"
	MODULE__ELEMENTTREE_STATE = "yes"
	MODULE__FUNCTOOLS_LDFLAGS = ""
	MODULE__GDBM_STATE = "missing"
	MODULE__HASHLIB_CFLAGS = ""
	MODULE__HASHLIB_DEPS = "./Modules/hashlib.h"
	MODULE__HASHLIB_LDFLAGS = "-lcrypto"
	MODULE__HASHLIB_STATE = "yes"
	MODULE__HEAPQ_STATE = "yes"
	MODULE__IO_CFLAGS = "-I./Modules/_io"
	MODULE__IO_DEPS = "./Modules/_io/_iomodule.h"
	MODULE__IO_LDFLAGS = ""
	MODULE__IO_STATE = "yes"
	MODULE__JSON_STATE = "yes"
	MODULE__LOCALE_LDFLAGS = ""
	MODULE__LSPROF_STATE = "yes"
	MODULE__LZMA_CFLAGS = ""
	MODULE__LZMA_LDFLAGS = "-llzma"
	MODULE__LZMA_STATE = "yes"
	MODULE__MD5_DEPS = "./Modules/hashlib.h"
	MODULE__MD5_STATE = "yes"
	MODULE__MULTIBYTECODEC_STATE = "yes"
	MODULE__MULTIPROCESSING_CFLAGS = "-I./Modules/_multiprocessing"
	MODULE__MULTIPROCESSING_STATE = "yes"
	MODULE__OPCODE_STATE = "yes"
	MODULE__OPERATOR_LDFLAGS = ""
	MODULE__PICKLE_STATE = "yes"
	MODULE__POSIXSHMEM_CFLAGS = "-I./Modules/_multiprocessing"
	MODULE__POSIXSHMEM_LDFLAGS = ""
	MODULE__POSIXSHMEM_STATE = "yes"
	MODULE__POSIXSUBPROCESS_STATE = "yes"
	MODULE__QUEUE_STATE = "yes"
	MODULE__RANDOM_STATE = "yes"
	MODULE__SCPROXY_STATE = "n/a"
	MODULE__SHA1_DEPS = "./Modules/hashlib.h"
	MODULE__SHA1_STATE = "yes"
	MODULE__SHA256_DEPS = "./Modules/hashlib.h"
	MODULE__SHA256_STATE = "yes"
	MODULE__SHA3_DEPS = "./Modules/_sha3/sha3.c ./Modules/_sha3/sha3.h ./Modules/hashlib.h"
	MODULE__SHA3_STATE = "yes"
	MODULE__SHA512_DEPS = "./Modules/hashlib.h"
	MODULE__SHA512_STATE = "yes"
	MODULE__SIGNAL_LDFLAGS = ""
	MODULE__SOCKET_DEPS = "./Modules/socketmodule.h ./Modules/addrinfo.h ./Modules/getaddrinfo.c ./Modules/getnameinfo.c"
	MODULE__SOCKET_STATE = "yes"
	MODULE__SQLITE3_CFLAGS = "-I./Modules/_sqlite"
	MODULE__SQLITE3_DEPS = "./Modules/_sqlite/connection.h ./Modules/_sqlite/cursor.h ./Modules/_sqlite/microprotocols.h ./Modules/_sqlite/module.h ./Modules/_sqlite/prepare_protocol.h ./Modules/_sqlite/row.h ./Modules/_sqlite/util.h"
	MODULE__SQLITE3_LDFLAGS = "-lsqlite3"
	MODULE__SQLITE3_STATE = "yes"
	MODULE__SRE_LDFLAGS = ""
	MODULE__SSL_CFLAGS = ""
	MODULE__SSL_DEPS = "./Modules/_ssl.h ./Modules/_ssl/cert.c ./Modules/_ssl/debughelpers.c ./Modules/_ssl/misc.c ./Modules/_ssl_data.h ./Modules/_ssl_data_111.h ./Modules/_ssl_data_300.h ./Modules/socketmodule.h"
	MODULE__SSL_LDFLAGS = "-lssl -lcrypto"
	MODULE__SSL_STATE = "yes"
	MODULE__STATISTICS_LDFLAGS = "-lm"
	MODULE__STATISTICS_STATE = "yes"
	MODULE__STAT_LDFLAGS = ""
	MODULE__STRUCT_STATE = "yes"
	MODULE__SYMTABLE_LDFLAGS = ""
	MODULE__TESTBUFFER_STATE = "yes"
	MODULE__TESTCAPI_DEPS = "./Modules/testcapi_long.h"
	MODULE__TESTCAPI_STATE = "yes"
	MODULE__TESTCLINIC_STATE = "yes"
	MODULE__TESTIMPORTMULTIPLE_STATE = "yes"
	MODULE__TESTINTERNALCAPI_STATE = "yes"
	MODULE__TESTMULTIPHASE_STATE = "yes"
	MODULE__THREAD_LDFLAGS = ""
	MODULE__TKINTER_CFLAGS = "-I/usr/include/tcl8.6 -Wno-strict-prototypes -DWITH_APPINIT=1"
	MODULE__TKINTER_LDFLAGS = "-ltk8.6 -ltkstub8.6 -ltcl8.6 -ltclstub8.6"
	MODULE__TKINTER_STATE = "yes"
	MODULE__TRACEMALLOC_LDFLAGS = ""
	MODULE__TYPING_STATE = "yes"
	MODULE__UUID_CFLAGS = "-I/usr/include/uuid"
	MODULE__UUID_LDFLAGS = "-luuid"
	MODULE__UUID_STATE = "yes"
	MODULE__WEAKREF_LDFLAGS = ""
	MODULE__XXSUBINTERPRETERS_STATE = "yes"
	MODULE__XXTESTFUZZ_STATE = "yes"
	MODULE__ZONEINFO_STATE = "yes"
	MULTIARCH = "x86_64-linux-gnu"
	MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"x86_64-linux-gnu\""
	MVWDELCH_IS_EXPRESSION = "1"
	NO_AS_NEEDED = "-Wl,--no-as-needed"
	OBJECT_OBJS = "\"
	OPENSSL_INCLUDES = ""
	OPENSSL_LDFLAGS = ""
	OPENSSL_LIBS = "-lssl -lcrypto"
	OPENSSL_RPATH = ""
	OPT = "-DNDEBUG -g -fwrapv -O3 -Wall"
	OTHER_LIBTOOL_OPT = ""
	PACKAGE_BUGREPORT = "0"
	PACKAGE_NAME = "0"
	PACKAGE_STRING = "0"
	PACKAGE_TARNAME = "0"
	PACKAGE_URL = "0"
	PACKAGE_VERSION = "0"
	PARSER_HEADERS = "\"
	PARSER_OBJS = "\ \ Parser/myreadline.o Parser/tokenizer.o"
	PEGEN_HEADERS = "\"
	PEGEN_OBJS = "\"
	PGO_PROF_GEN_FLAG = "-fprofile-generate"
	PGO_PROF_USE_FLAG = "-fprofile-use -fprofile-correction"
	PLATLIBDIR = "lib"
	POBJS = "\"
	POSIX_SEMAPHORES_NOT_ENABLED = "0"
	PROFILE_TASK = "-m test --pgo --timeout=1200"
	PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "1"
	PTHREAD_SYSTEM_SCHED_SUPPORTED = "1"
	PURIFY = ""
	PY3LIBRARY = "libpython3.so"
	PYLONG_BITS_IN_DIGIT = "0"
	PYTHON = "python"
	PYTHONFRAMEWORK = ""
	PYTHONFRAMEWORKDIR = "no-framework"
	PYTHONFRAMEWORKINSTALLDIR = ""
	PYTHONFRAMEWORKPREFIX = ""
	PYTHONPATH = ""
	PYTHON_FOR_BUILD = "./python -E"
	PYTHON_FOR_BUILD_DEPS = "python"
	PYTHON_FOR_FREEZE = "./_bootstrap_python"
	PYTHON_FOR_REGEN = ""
	PYTHON_HEADERS = "\"
	PYTHON_OBJS = "\"
	PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2""
	PY_BUILTIN_MODULE_CFLAGS = "-Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include -fPIC -DPy_BUILD_CORE_BUILTIN"
	PY_CFLAGS = "-Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall"
	PY_CFLAGS_NODIST = "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal"
	PY_COERCE_C_LOCALE = "1"
	PY_CORE_CFLAGS = "-Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include -fPIC -DPy_BUILD_CORE"
	PY_CORE_LDFLAGS = "-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	PY_CPPFLAGS = "-I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include"
	PY_ENABLE_SHARED = "1"
	PY_FORMAT_SIZE_T = ""z""
	PY_LDFLAGS = "-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	PY_LDFLAGS_NODIST = ""
	PY_LDFLAGS_NOLTO = "-L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	PY_SQLITE_ENABLE_LOAD_EXTENSION = "0"
	PY_SQLITE_HAVE_SERIALIZE = "1"
	PY_SSL_DEFAULT_CIPHERS = "1"
	PY_SSL_DEFAULT_CIPHER_STRING = "0"
	PY_STDMODULE_CFLAGS = "-Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/home/bthayer/.pyenv/versions/3.11.7/include -I/home/bthayer/.pyenv/versions/3.11.7/include -fPIC"
	PY_SUPPORT_TIER = "1"
	Py_DEBUG = "0"
	Py_ENABLE_SHARED = "1"
	Py_HASH_ALGORITHM = "0"
	Py_STATS = "0"
	Py_SUNOS_VERSION = "0"
	Py_TRACE_REFS = "0"
	QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \"
	READELF = "readelf"
	RESSRCDIR = "Mac/Resources/framework"
	RETSIGTYPE = "void"
	RUNSHARED = "LD_LIBRARY_PATH=/tmp/python-build.20240110080837.26561/Python-3.11.7"
	SCRIPTDIR = "/home/bthayer/.pyenv/versions/3.11.7/lib"
	SETPGRP_HAVE_ARG = "0"
	SHELL = "/bin/sh"
	SHLIBS = "-ldl -L/home/bthayer/.pyenv/versions/3.11.7/lib -Wl,-rpath,/home/bthayer/.pyenv/versions/3.11.7/lib"
	SHLIB_SUFFIX = ".so"
	SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0"
	SITEPATH = ""
	SIZEOF_DOUBLE = "8"
	SIZEOF_FLOAT = "4"
	SIZEOF_FPOS_T = "16"
	SIZEOF_INT = "4"
	SIZEOF_LONG = "8"
	SIZEOF_LONG_DOUBLE = "16"
	SIZEOF_LONG_LONG = "8"
	SIZEOF_OFF_T = "8"
	SIZEOF_PID_T = "4"
	SIZEOF_PTHREAD_KEY_T = "4"
	SIZEOF_PTHREAD_T = "8"
	SIZEOF_SHORT = "2"
	SIZEOF_SIZE_T = "8"
	SIZEOF_TIME_T = "8"
	SIZEOF_UINTPTR_T = "8"
	SIZEOF_VOID_P = "8"
	SIZEOF_WCHAR_T = "4"
	SIZEOF__BOOL = "1"
	SOABI = "cpython-311-x86_64-linux-gnu"
	SRCDIRS = "Modules   Modules/_blake2   Modules/_ctypes   Modules/_decimal   Modules/_decimal/libmpdec   Modules/_io   Modules/_multiprocessing   Modules/_sha3   Modules/_sqlite   Modules/_sre   Modules/_xxtestfuzz   Modules/cjkcodecs   Modules/expat   Objects   Parser   Programs   Python   Python/frozen_modules   Python/deepfreeze"
	SRC_GDB_HOOKS = "./Tools/gdb/libpython.py"
	STATIC_LIBPYTHON = "1"
	STDC_HEADERS = "1"
	STRICT_SYSV_CURSES = "/* Don't use ncurses extensions */"
	STRIPFLAG = "-s"
	SUBDIRS = ""
	SUBDIRSTOO = "Include Lib Misc"
	SYSLIBS = "-lm"
	SYS_SELECT_WITH_SYS_TIME = "1"
	TESTOPTS = ""
	TESTPATH = ""
	TESTPYTHON = "LD_LIBRARY_PATH=/tmp/python-build.20240110080837.26561/Python-3.11.7 ./python -E"
	TESTPYTHONOPTS = ""
	TESTRUNNER = "LD_LIBRARY_PATH=/tmp/python-build.20240110080837.26561/Python-3.11.7 ./python -E ./Tools/scripts/run_tests.py"
	TESTSUBDIRS = "ctypes/test \"
	TESTTIMEOUT = "1200"
	TEST_MODULES = "yes"
	THREAD_STACK_SIZE = "0"
	TIMEMODULE_LIB = "0"
	TIME_WITH_SYS_TIME = "1"
	TM_IN_SYS_TIME = "0"
	TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo"
	UNICODE_DEPS = "\"
	UNIVERSALSDK = ""
	UPDATE_FILE = "./Tools/scripts/update_file.py"
	USE_COMPUTED_GOTOS = "0"
	VERSION = "3.11"
	WASM_ASSETS_DIR = "./home/bthayer/.pyenv/versions/3.11.7"
	WASM_STDLIB = "./home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/os.py"
	WHEEL_PKG_DIR = ""
	WINDOW_HAS_FLAGS = "1"
	WITH_DECIMAL_CONTEXTVAR = "1"
	WITH_DOC_STRINGS = "1"
	WITH_DTRACE = "0"
	WITH_DYLD = "0"
	WITH_EDITLINE = "0"
	WITH_FREELISTS = "1"
	WITH_LIBINTL = "0"
	WITH_NEXT_FRAMEWORK = "0"
	WITH_PYMALLOC = "1"
	WITH_VALGRIND = "0"
	X87_DOUBLE_ROUNDING = "0"
	XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax"
	abiflags = ""
	abs_builddir = "/tmp/python-build.20240110080837.26561/Python-3.11.7"
	abs_srcdir = "/tmp/python-build.20240110080837.26561/Python-3.11.7"
	base = "/home/bthayer/.pyenv/versions/3.11.7"
	datarootdir = "/home/bthayer/.pyenv/versions/3.11.7/share"
	exec_prefix = "/home/bthayer/.pyenv/versions/3.11.7"
	installed_base = "/home/bthayer/.pyenv/versions/3.11.7"
	installed_platbase = "/home/bthayer/.pyenv/versions/3.11.7"
	platbase = "/home/bthayer/.pyenv/versions/3.11.7"
	platlibdir = "lib"
	prefix = "/home/bthayer/.pyenv/versions/3.11.7"
	projectbase = "/home/bthayer/.pyenv/versions/3.11.7/bin"
	py_version = "3.11.7"
	py_version_nodot = "311"
	py_version_nodot_plat = ""
	py_version_short = "3.11"
	srcdir = "/home/bthayer/.pyenv/versions/3.11.7/lib/python3.11/config-3.11-x86_64-linux-gnu"
	userbase = "/home/bthayer/.local"

Example pyproject.toml

See Description - reproducing this issue involves multiple pyproject.toml iterations.

Poetry Runtime Logs

bthayer@gazelle:~/black-poetry-pypi$ poetry -vvv update
Loading configuration file /home/bthayer/.config/pypoetry/config.toml
Adding repository ca (https://<redacted>.d.codeartifact.us-<redacted>.amazonaws.com/<redacted>/simple) and setting it as primary
Deactivating the PyPI repository
Trying to detect current active python executable as specified in the config.
Found: /home/bthayer/.pyenv/versions/3.11.7/bin/python
Using virtualenv: /home/bthayer/.cache/pypoetry/virtualenvs/black-poetry-pypi-1ymJqJbJ-py3.11
Updating dependencies
Resolving dependencies...
   1: fact: black-poetry-pypi is 0.1.0
   1: derived: black-poetry-pypi
   1: fact: black-poetry-pypi depends on black (24.4.0)
   1: selecting black-poetry-pypi (0.1.0)
   1: derived: black (==24.4.0)
Creating new session for <redacted>.d.codeartifact.us-<redacted>.amazonaws.com
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (1): <redacted>.d.codeartifact.us-<redacted>.amazonaws.com:443
[urllib3:urllib3.connectionpool] https://<redacted>.d.codeartifact.us-<redacted>.amazonaws.com:443 "GET /<redacted>/simple/black/ HTTP/1.1" 200 None
Source (ca): 1 packages found for black 24.4.0
   1: selecting black (24.4.0)
   1: Version solving took 0.579 seconds.
   1: Tried 1 solutions.

Finding the necessary packages for the current system
Source (ca): 1 packages found for black 24.4.0

Package operations: 0 installs, 1 update, 5 removals

  - Removing click (8.1.7): Pending...
  - Removing click (8.1.7): Removing...
  - Removing click (8.1.7)
  - Removing mypy-extensions (1.0.0): Pending...
  - Removing mypy-extensions (1.0.0): Removing...
  - Removing mypy-extensions (1.0.0)
  - Removing packaging (24.0): Pending...
  - Removing packaging (24.0): Removing...
  - Removing packaging (24.0)
  - Removing pathspec (0.12.1): Pending...
  - Removing pathspec (0.12.1): Removing...
  - Removing pathspec (0.12.1)
  - Removing platformdirs (4.2.0): Pending...
  - Removing platformdirs (4.2.0): Removing...
  - Removing platformdirs (4.2.0)
  - Updating black (24.3.0 -> 24.4.0): Pending...
Skipping wheel black-24.4.0-cp310-cp310-macosx_10_9_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp310-cp310-macosx_11_0_arm64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp310-cp310-win_amd64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp311-cp311-macosx_10_9_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp311-cp311-macosx_11_0_arm64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp311-cp311-win_amd64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp312-cp312-macosx_10_9_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp312-cp312-macosx_11_0_arm64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp312-cp312-win_amd64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp38-cp38-macosx_10_9_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp38-cp38-macosx_11_0_arm64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp38-cp38-win_amd64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp39-cp39-macosx_10_9_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp39-cp39-macosx_11_0_arm64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl as this is not supported by the current environment
Skipping wheel black-24.4.0-cp39-cp39-win_amd64.whl as this is not supported by the current environment
  - Updating black (24.3.0 -> 24.4.0): Installing...
  - Updating black (24.3.0 -> 24.4.0)

Writing lock file
@blthayer blthayer added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Apr 17, 2024
@danhje
Copy link

danhje commented Apr 17, 2024

Exact same issue here, except on Artifactory. Transitive dependencies are not detected, and the description of the top-level dependency (black, in your case) also disappear. @blthayer, can you confirm that it only happens for top-level dependencies which have Metadata-Version 2.3? As you can see here, I get description and transitive dependencies for FastAPI right up to the moment the Metadata-Version changes from 2.1 to 2.3:
image

@blthayer
Copy link
Author

@danhje - you might be on to something:

bthayer@gazelle:~/black-poetry-pypi$ cat /home/bthayer/.cache/pypoetry/virtualenvs/black-poetry-pypi-1ymJqJbJ-py3.11/lib/python3.11/site-packages/black-24.4.0.dist-info/METADATA | grep Metadata-Version
Metadata-Version: 2.3
bthayer@gazelle:~/black-poetry-pypi$ nano pyproject.toml 
bthayer@gazelle:~/black-poetry-pypi$ poetry update
Updating dependencies
Resolving dependencies... (2.6s)

Package operations: 5 installs, 1 update, 0 removals

  - Installing click (8.1.7)
  - Installing mypy-extensions (1.0.0)
  - Installing packaging (24.0)
  - Installing pathspec (0.12.1)
  - Installing platformdirs (4.2.0)
  - Downgrading black (24.4.0 -> 24.3.0)

Writing lock file
bthayer@gazelle:~/black-poetry-pypi$ cat /home/bthayer/.cache/pypoetry/virtualenvs/black-poetry-pypi-1ymJqJbJ-py3.11/lib/python3.11/site-packages/black-24.3.0.dist-info/METADATA | grep Metadata-Version
Metadata-Version: 2.1
bthayer@gazelle:~/black-poetry-pypi$ 

@danhje
Copy link

danhje commented Apr 17, 2024

I think this might explode, as more and more packages are published with gh-action-pypi-publish v.1.8.13 or higher, which sets metadata-version to 2.3.

@dimbleby
Copy link
Contributor

duplicate #9130, #9191, #9195, #9244, #9266, #9272, #9288, #9294, #9301 - with same resolution

please close

@YossiMicrosoft
Copy link

YossiMicrosoft commented Apr 18, 2024

I'm having the same problem with poetry version 1.7.1 and when trying to install openai from a private repository. the suggested solution of fixing it to "<1.21.2" solved this for me and I was able to get its dependencies. when I removed the private repository, it was working fine.

Updating poetry pkginfo to 1.10 and clearing the cache solved the issue for me.

@blthayer
Copy link
Author

@dimbleby - thanks for providing those other issues. To summarize the resolution for others that come across this issue, see this comment. To summarize, assuming installation via the install.python-poetry.org method:

$ poetry self add pkginfo>=1.10.0
$ poetry cache list
...
$ poetry cache clear PyPI --all
$ poetry cache clear ca --all
$ poetry update
...
$ # click and other dependencies now get picked up for black 24.4.0 when installing from AWS CodeArtifact

Others suggested using pkginfo==1.10.0, choose for yourself I suppose.

Does anybody have an idea or a source/reference of when the next poetry release may come out? It seems this pkginfo problem is plaguing many users, so a quick and small patch to bump pkginfo could be useful...

Copy link

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 May 19, 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 status/triage This issue needs to be triaged
Projects
None yet
Development

No branches or pull requests

4 participants