Skip to content

Poetry generates contradictory package markers when locking transitive dependencies with mutually exclusive dependency variants when using sys_platform #10989

Open

Description

@nadinehelfer

Description

Dear Poetry team,

I found the following issue. Let me know if you need additional information.

Description

Poetry generates an invalid package marker in poetry.lock when the same dependency is declared multiple times with mutually exclusive environment markers and one variant has transitive dependencies that are not available for the other variant.

In this case, torch is declared with different variants for non-macOS and macOS environments:

torch = [
    { version = "^2.6.0+cpu", source = "pytorch_cpu", markers = "sys_platform != 'darwin'" },
    { version = "^2.6.0", markers = "sys_platform == 'darwin'" }
]

And torchvision is declared in an equal way:

torchvision = [
    { version = "0.21.0+cpu", source = "pytorch_cpu", markers = "sys_platform != 'darwin'" },
    { version = "^0.21.0", markers = "sys_platform == 'darwin'" }
]

The issue also happens without torchvision. The difference will be, that

The resolver correctly identifies the two dependency branches separately. However, the generated poetry.lock contains an invalid marker for the transitive dependency triton.

Same behavior happens when sys_platform is explicitly set to linux:

torchvision = [
    { version = "0.21.0+cpu", source = "pytorch_cpu", markers = "sys_platform == 'linux'" },
    { version = "^0.21.0", markers = "sys_platform == 'darwin'" }
]

I could work around the issue, by replacing sys_platform with platform_system which shows the expected behavior.

Expected behavior

Poetry should preserve the dependency marker context correctly.

The triton dependency of the non-CPU torch package should remain scoped to the corresponding dependency branch:

triton = { version = "3.2.0", markers = "platform_system == "Linux" and platform_machine == "x86_64"" }

The lock file should not create a standalone package marker that combines mutually exclusive parent and dependency markers.

Actual behavior

The poetry.lock file contains:

[[package]]
name = "triton"
version = "3.2.0"
description = "A language and compiler for custom Deep Learning operations"
optional = false
python-versions = "*"
groups = ["main"]
markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\" and sys_platform == \"darwin\""

This marker can never evaluate to True, because:

platform_system == "Linux"

and

sys_platform == "darwin"

are mutually exclusive.

The same invalid marker is then propagated to exported requirements files generated with the export plugin:

triton==3.2.0 ; platform_system == "Linux" and platform_machine == "x86_64" and sys_platform == "darwin" and python_version == "3.12"

Resolver output

Running:

poetry lock -vvv

shows that Poetry resolves the two branches separately:

Resolved with overrides:
({Package('poetry-bug', '0.1.0'): {'torch': <Dependency torch (>=2.6.0+cpu,<3.0.0)>}})

Resolved with overrides:
({Package('poetry-bug', '0.1.0'): {'torch': <Dependency torch (>=2.6.0,<3.0.0)>}})

For the non-CPU branch, the resolver correctly finds:

torch (2.6.0) depends on triton (3.2.0)

and the dependency marker remains correct:

triton = {version = "3.2.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""}
The incorrect marker appears when the resolved branches are merged into the final lock file.

Environment

Poetry:
Poetry (version 2.4.1)

Plugins:
poetry-plugin-export (1.10.0)
poetry-plugin-migrate (0.1.1)

Export command used:
poetry export --all-groups --format requirements.txt --without-hashes -o requirements.txt

Additional information

triton is not a direct dependency. It is introduced transitively by torch.
The issue is reproducible after deleting poetry.lock and regenerating it.
The problematic marker is already present in poetry.lock; poetry export only propagates it.
The issue appears to occur during lock file generation/merging of resolver override results rather than during export.

Minimal reproduction

A pyproject.toml containing:

[project]
name = "poetry-issue"
version = "0.1.0"
requires-python = ">=3.12"

[[tool.poetry.source]]
name = "pytorch_cpu"
url = "https://download.pytorch.org/whl/cpu"
priority = "explicit"

[tool.poetry.dependencies]
python = ">=3.12,<3.13"
torch = [
    { version = "^2.6.0+cpu", source = "pytorch_cpu", markers = "sys_platform == 'linux'" },
    { version = "^2.6.0", markers = "sys_platform == 'darwin'" }
]
torchvision = [
    { version = "0.21.0+cpu", source = "pytorch_cpu", markers = "sys_platform == 'linux'" },
    { version = "^0.21.0", markers = "sys_platform == 'darwin'" }
]

is sufficient to reproduce the issue (torchvision can be left out).

Workarounds

I could work around the issue, by replacing sys_platform with platform_system which shows the expected behavior.

Poetry Installation Method

pipx

Operating System

Ubuntu 22.04 LTS

Poetry Version

2.4.1

Poetry Configuration

cache-dir = "/home/<user>/.cache/pypoetry"
data-dir = "/home/<user>/.local/share/pypoetry"
installer.max-workers = null
installer.no-binary = null
installer.only-binary = null
installer.parallel = true
installer.re-resolve = false
keyring.enabled = true
python.installation-dir = "{data-dir}/python"  # /home/<user>/.local/share/pypoetry/python
repositories.gitlab-pypi.url = "https://gitlab.ourcompanyname.de/api/v4/projects/100/packages/pypi/simple"
repositories.pytorch_cpu.url = "https://download.pytorch.org/whl/cpu"
requests.max-retries = 0
solver.lazy-wheel = true
solver.min-release-age = 0
solver.min-release-age-exclude = null
solver.min-release-age-exclude-source = null
system-git-client = false
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/<user>/.cache/pypoetry/virtualenvs
virtualenvs.prompt = "{project_name}-py{python_version}"
virtualenvs.use-poetry-python = false

Python Sysconfig

sysconfig.log
Platform: "linux-x86_64"
Python version: "3.12"
Current installation scheme: "venv"

Paths: 
      data = "/home/<user>/code/project-name/.venv"
      include = "/usr/include/python3.12"
      platinclude = "/usr/include/python3.12"
      platlib = "/home/<user>/code/project-name/.venv/lib/python3.12/site-packages"
      platstdlib = "/home/<user>/code/project-name/.venv/lib/python3.12"
      purelib = "/home/<user>/code/project-name/.venv/lib/python3.12/site-packages"
      scripts = "/home/<user>/code/project-name/.venv/bin"
      stdlib = "/usr/lib/python3.12"

Variables: 
      ABIFLAGS = ""
      AC_APPLE_UNIVERSAL_BUILD = "0"
      AIX_BUILDDATE = "0"
      AIX_GENUINE_CPLUSPLUS = "0"
      ALIGNOF_LONG = "8"
      ALIGNOF_MAX_ALIGN_T = "16"
      ALIGNOF_SIZE_T = "8"
      ALT_SOABI = "0"
      ANDROID_API_LEVEL = "0"
      AR = "x86_64-linux-gnu-gcc-ar"
      ARFLAGS = "rcs"
      BASECFLAGS = "-fno-strict-overflow -Wsign-compare"
      BASECPPFLAGS = "-IObjects -IInclude -IPython"
      BASEMODLIBS = ""
      BINDIR = "/usr/bin"
      BINLIBDEST = "/usr/lib/x86_64-linux-gnu/python3.12"
      BLDLIBRARY = "-lpython3.12"
      BLDSHARED = "x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      BOOTSTRAP_HEADERS = "\"
      BUILDEXE = ""
      BUILDPYTHON = "python"
      BUILD_GNU_TYPE = "x86_64-pc-linux-gnu"
      BUILD_SCRIPTS_DIR = "build/scripts-3.12"
      BYTESTR_DEPS = "\"
      CC = "x86_64-linux-gnu-gcc"
      CCSHARED = "-fPIC"
      CFLAGS = "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2   "
      CFLAGSFORSHARED = "-fPIC"
      CFLAGS_ALIASING = ""
      CFLAGS_NODIST = ""
      CODECS_COMMON_HEADERS = "../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      COMPILEALL_OPTS = "-j0"
      CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
      CONFIGURE_CFLAGS = "-g       -fstack-protector-strong -Wformat -Werror=format-security"
      CONFIGURE_CFLAGS_NODIST = "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden"
      CONFIGURE_CPPFLAGS = "-Wdate-time -D_FORTIFY_SOURCE=2"
      CONFIGURE_LDFLAGS = "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      CONFIGURE_LDFLAGS_NODIST = ""
      CONFIGURE_LDFLAGS_NOLTO = ""
      CONFIG_ARGS = "'--enable-shared' '--prefix=/usr' '--libdir=/usr/lib/x86_64-linux-gnu' '--enable-ipv6' '--enable-loadable-sqlite-extensions' '--with-dbmliborder=bdb:gdbm' '--with-computed-gotos' '--without-ensurepip' '--with-system-expat' 'MKDIR_P=/bin/mkdir -p' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-g       -fstack-protector-strong -Wformat -Werror=format-security ' 'LDFLAGS=-Wl,-Bsymbolic-functions      -g -fwrapv -O2   ' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'"
      CONFINCLUDEDIR = "/usr/include"
      CONFINCLUDEPY = "/usr/include/python3.12"
      COREPYTHONPATH = ""
      COVERAGE_INFO = "/build/python3.12-pOdM36/python3.12-3.12.13/build-shared/coverage.info"
      COVERAGE_LCOV_OPTIONS = "--rc lcov_branch_coverage=1"
      COVERAGE_REPORT = "/build/python3.12-pOdM36/python3.12-3.12.13/build-shared/lcov-report"
      COVERAGE_REPORT_OPTIONS = "--rc lcov_branch_coverage=1 --branch-coverage --title "CPython 3.12 LCOV report [commit $(shell )]""
      CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2"
      CXX = "x86_64-linux-gnu-g++"
      DEEPFREEZE_C = "Python/deepfreeze/deepfreeze.c"
      DEEPFREEZE_DEPS = "../Tools/build/deepfreeze.py _bootstrap_python ../Programs/_freeze_module.py \"
      DEEPFREEZE_OBJS = "Python/deepfreeze/deepfreeze.o"
      DESTDIRS = "/usr /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/python3.12 /usr/lib/python3.12/lib-dynload"
      DESTLIB = "/usr/lib/python3.12"
      DESTPATH = ""
      DESTSHARED = "/usr/lib/python3.12/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"
      DSYMUTIL = ""
      DSYMUTIL_PATH = ""
      DTRACE = ""
      DTRACE_DEPS = "\"
      DTRACE_HEADERS = ""
      DTRACE_OBJS = ""
      DYNLOADFILE = "dynload_shlib.o"
      ENABLE_IPV6 = "1"
      ENSUREPIP = "no"
      EXE = ""
      EXEMODE = "755"
      EXENAME = "/usr/bin/python3.12"
      EXPORTSFROM = ""
      EXPORTSYMS = ""
      EXTRATESTOPTS = ""
      EXT_SUFFIX = ".cpython-312-x86_64-linux-gnu.so"
      FILEMODE = "644"
      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 = "1"
      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 = "1"
      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_EDITLINE_READLINE_H = "0"
      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_FFI_CLOSURE_ALLOC = "1"
      HAVE_FFI_PREP_CIF_VAR = "1"
      HAVE_FFI_PREP_CLOSURE_LOC = "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 = "1"
      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 = "1"
      HAVE_LIBDL = "1"
      HAVE_LIBDLD = "0"
      HAVE_LIBIEEE = "0"
      HAVE_LIBINTL_H = "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_FS_H = "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_MEMRCHR = "1"
      HAVE_MINIX_CONFIG_H = "0"
      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_NCURSESW = "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_ETHERNET_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_PANEL_H = "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_READLINE_READLINE_H = "0"
      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_SETNS = "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_STDINT_H = "1"
      HAVE_STDIO_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_PIDFD_H = "0"
      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_R = "1"
      HAVE_TZNAME = "0"
      HAVE_UMASK = "1"
      HAVE_UNAME = "1"
      HAVE_UNISTD_H = "1"
      HAVE_UNLINKAT = "1"
      HAVE_UNSHARE = "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 = "/usr/include /usr/include /usr/include/python3.12 /usr/include/python3.12"
      INCLUDEDIR = "/usr/include"
      INCLUDEPY = "/usr/include/python3.12"
      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.12.so.1.0"
      IO_H = "Modules/_io/_iomodule.h"
      IO_OBJS = "\"
      LDCXXSHARED = "x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      LDFLAGS = "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      LDFLAGS_NODIST = ""
      LDLIBRARY = "libpython3.12.so"
      LDLIBRARYDIR = ""
      LDSHARED = "x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      LDVERSION = "3.12"
      LIBC = ""
      LIBDEST = "/usr/lib/python3.12"
      LIBDIR = "/usr/lib/x86_64-linux-gnu"
      LIBEXPAT_A = "Modules/expat/libexpat.a"
      LIBEXPAT_CFLAGS = "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fPIC"
      LIBEXPAT_HEADERS = "\"
      LIBEXPAT_OBJS = "\"
      LIBHACL_CFLAGS = "-I../Modules/_hacl/include -D_BSD_SOURCE -D_DEFAULT_SOURCE -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fPIC"
      LIBHACL_HEADERS = "\"
      LIBHACL_SHA2_A = "Modules/_hacl/libHacl_Hash_SHA2.a"
      LIBHACL_SHA2_HEADERS = "\"
      LIBHACL_SHA2_OBJS = "\"
      LIBM = "-lm"
      LIBMPDEC_A = "Modules/_decimal/libmpdec/libmpdec.a"
      LIBMPDEC_CFLAGS = "-I../Modules/_decimal/libmpdec -DCONFIG_64=1 -DANSI=1 -DHAVE_UINT128_T=1 -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fPIC"
      LIBMPDEC_HEADERS = "\"
      LIBMPDEC_OBJS = "\"
      LIBOBJDIR = "Python/"
      LIBOBJS = ""
      LIBPC = "/usr/lib/x86_64-linux-gnu/pkgconfig"
      LIBPL = "/usr/lib/python3.12/config-3.12-x86_64-linux-gnu"
      LIBPYTHON = ""
      LIBRARY = "libpython3.12.a"
      LIBRARY_DEPS = "libpython3.12.a libpython3.12.so libpython3.so"
      LIBRARY_OBJS = "\"
      LIBRARY_OBJS_OMIT_FROZEN = "\"
      LIBS = "-ldl"
      LIBSUBDIRS = "asyncio \"
      LINKCC = "x86_64-linux-gnu-gcc"
      LINKFORSHARED = "-Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions"
      LINK_PYTHON_DEPS = "libpython3.12.a libpython3.12.so libpython3.so"
      LINK_PYTHON_OBJS = "-L. -lpython3.12"
      LIPO_32BIT_FLAGS = ""
      LIPO_INTEL64_FLAGS = ""
      LLVM_PROF_ERR = "no"
      LLVM_PROF_FILE = ""
      LLVM_PROF_MERGER = "true"
      LN = "ln"
      LOCALMODLIBS = "-lm      -lm   -lz -lm -lm   -lexpat  -lexpat     Modules/_hacl/libHacl_Hash_SHA2.a         -lz"
      MACHDEP = "linux"
      MACHDEP_OBJS = ""
      MACHDESTLIB = "/usr/lib/x86_64-linux-gnu/python3.12"
      MACOSX_DEPLOYMENT_TARGET = ""
      MAJOR_IN_MKDEV = "0"
      MAJOR_IN_SYSMACROS = "1"
      MAKESETUP = "../Modules/makesetup"
      MANDIR = "/usr/share/man"
      MKDIR_P = "/bin/mkdir -p"
      MODBUILT_NAMES = "_bisect  _csv  _datetime  _heapq  _opcode  _pickle  _random  _socket  _statistics  _struct  array  binascii  cmath  math  select  _elementtree  pyexpat  _blake2  _md5  _sha1  _sha2  _sha3  unicodedata  _posixsubprocess  fcntl  grp  spwd  syslog  zlib  _asyncio  _contextvars  _json  _lsprof  _queue  _xxsubinterpreters  _xxinterpchannels  _zoneinfo  audioop  _decimal  _bz2  _lzma  _dbm  _gdbm  readline  _codecs_cn  _codecs_hk  _codecs_iso2022  _codecs_jp  _codecs_kr  _codecs_tw  _multibytecodec  _crypt  mmap  nis  ossaudiodev  resource  termios  _posixshmem  _multiprocessing  _ctypes  _curses  _curses_panel  _sqlite3  _ssl  _hashlib  _uuid  _tkinter  xxsubtype  _xxtestfuzz  _testbuffer  _testinternalcapi  _testcapi  _testclinic  _testimportmultiple  _testmultiphase  _testsinglephase  _ctypes_test  xxlimited  xxlimited_35  atexit  faulthandler  posix  _signal  _tracemalloc  _codecs  _collections  errno  _io  itertools  _sre  _thread  time  _typing  _weakref  _abc  _functools  _locale  _operator  _stat  _symtable  pwd"
      MODDISABLED_NAMES = ""
      MODLIBS = "-lm      -lm   -lz -lm -lm   -lexpat  -lexpat     Modules/_hacl/libHacl_Hash_SHA2.a         -lz"
      MODOBJS = "Modules/_bisectmodule.o  Modules/_csv.o  Modules/_datetimemodule.o  Modules/_heapqmodule.o  Modules/_opcode.o  Modules/_pickle.o  Modules/_randommodule.o  Modules/socketmodule.o  Modules/_statisticsmodule.o  Modules/_struct.o  Modules/arraymodule.o  Modules/binascii.o  Modules/cmathmodule.o  Modules/mathmodule.o  Modules/selectmodule.o  Modules/_elementtree.o  Modules/pyexpat.o  Modules/_blake2/blake2module.o Modules/_blake2/blake2b_impl.o Modules/_blake2/blake2s_impl.o  Modules/md5module.o Modules/_hacl/Hacl_Hash_MD5.o  Modules/sha1module.o Modules/_hacl/Hacl_Hash_SHA1.o  Modules/sha2module.o  Modules/sha3module.o Modules/_hacl/Hacl_Hash_SHA3.o  Modules/unicodedata.o  Modules/_posixsubprocess.o  Modules/fcntlmodule.o  Modules/grpmodule.o  Modules/spwdmodule.o  Modules/syslogmodule.o  Modules/zlibmodule.o  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/_typingmodule.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"
      MODSHARED_NAMES = "_asyncio _contextvars _json _lsprof _queue _xxsubinterpreters _xxinterpchannels _zoneinfo audioop _decimal _bz2 _lzma _dbm _gdbm readline _codecs_cn _codecs_hk _codecs_iso2022 _codecs_jp _codecs_kr _codecs_tw _multibytecodec _crypt mmap nis ossaudiodev resource termios _posixshmem _multiprocessing _ctypes _curses _curses_panel _sqlite3 _ssl _hashlib _uuid _tkinter xxsubtype _xxtestfuzz _testbuffer _testinternalcapi _testcapi _testclinic _testimportmultiple _testmultiphase _testsinglephase _ctypes_test xxlimited xxlimited_35"
      MODULE_ARRAY_LDFLAGS = ""
      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_DEPS_SHARED = "Modules/config.c"
      MODULE_DEPS_STATIC = "Modules/config.c"
      MODULE_ERRNO_LDFLAGS = ""
      MODULE_FAULTHANDLER_LDFLAGS = ""
      MODULE_FCNTL_LDFLAGS = ""
      MODULE_FCNTL_STATE = "yes"
      MODULE_GRP_LDFLAGS = ""
      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 = ""
      MODULE_PYEXPAT_DEPS = ""
      MODULE_PYEXPAT_LDFLAGS = "-lexpat"
      MODULE_PYEXPAT_STATE = "yes"
      MODULE_READLINE_CFLAGS = "-D_DEFAULT_SOURCE"
      MODULE_READLINE_LDFLAGS = "-lreadline"
      MODULE_READLINE_STATE = "yes"
      MODULE_RESOURCE_STATE = "yes"
      MODULE_SELECT_LDFLAGS = ""
      MODULE_SELECT_STATE = "yes"
      MODULE_SPWD_LDFLAGS = ""
      MODULE_SPWD_STATE = "yes"
      MODULE_SYSLOG_LDFLAGS = ""
      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_LDFLAGS = ""
      MODULE_UNICODEDATA_STATE = "yes"
      MODULE_XXLIMITED_35_STATE = "yes"
      MODULE_XXLIMITED_STATE = "yes"
      MODULE_XXSUBTYPE_STATE = "yes"
      MODULE_ZLIB_CFLAGS = ""
      MODULE_ZLIB_LDFLAGS = "-lz"
      MODULE_ZLIB_STATE = "yes"
      MODULE__ABC_LDFLAGS = ""
      MODULE__ASYNCIO_STATE = "yes"
      MODULE__BISECT_LDFLAGS = ""
      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_DEPS = "../Modules/cjkcodecs/mappings_cn.h ../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      MODULE__CODECS_CN_STATE = "yes"
      MODULE__CODECS_HK_DEPS = "../Modules/cjkcodecs/mappings_hk.h  ../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      MODULE__CODECS_HK_STATE = "yes"
      MODULE__CODECS_ISO2022_DEPS = "../Modules/cjkcodecs/mappings_jisx0213_pair.h ../Modules/cjkcodecs/alg_jisx0201.h ../Modules/cjkcodecs/emu_jisx0213_2000.h ../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      MODULE__CODECS_ISO2022_STATE = "yes"
      MODULE__CODECS_JP_DEPS = "../Modules/cjkcodecs/mappings_jisx0213_pair.h ../Modules/cjkcodecs/alg_jisx0201.h ../Modules/cjkcodecs/emu_jisx0213_2000.h ../Modules/cjkcodecs/mappings_jp.h ../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      MODULE__CODECS_JP_STATE = "yes"
      MODULE__CODECS_KR_DEPS = "../Modules/cjkcodecs/mappings_kr.h ../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      MODULE__CODECS_KR_STATE = "yes"
      MODULE__CODECS_LDFLAGS = ""
      MODULE__CODECS_TW_DEPS = "../Modules/cjkcodecs/mappings_tw.h ../Modules/cjkcodecs/multibytecodec.h ../Modules/cjkcodecs/cjkcodecs.h"
      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_LDFLAGS = ""
      MODULE__CSV_STATE = "yes"
      MODULE__CTYPES_CFLAGS = "-fno-strict-overflow"
      MODULE__CTYPES_DEPS = "../Modules/_ctypes/ctypes.h"
      MODULE__CTYPES_LDFLAGS = "-lffi -ldl"
      MODULE__CTYPES_MALLOC_CLOSURE = ""
      MODULE__CTYPES_STATE = "yes"
      MODULE__CTYPES_TEST_LDFLAGS = "-lm"
      MODULE__CTYPES_TEST_STATE = "yes"
      MODULE__CURSES_CFLAGS = "-D_DEFAULT_SOURCE"
      MODULE__CURSES_LDFLAGS = "-lncursesw -ltinfo"
      MODULE__CURSES_PANEL_CFLAGS = "-D_DEFAULT_SOURCE  -D_DEFAULT_SOURCE  -D_DEFAULT_SOURCE"
      MODULE__CURSES_PANEL_LDFLAGS = "-lpanelw -lncursesw -ltinfo"
      MODULE__CURSES_PANEL_STATE = "yes"
      MODULE__CURSES_STATE = "yes"
      MODULE__DATETIME_LDFLAGS = "-lm"
      MODULE__DATETIME_STATE = "yes"
      MODULE__DBM_CFLAGS = "-DUSE_BERKDB"
      MODULE__DBM_LDFLAGS = "-ldb"
      MODULE__DBM_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 = ""
      MODULE__ELEMENTTREE_DEPS = "../Modules/pyexpat.c"
      MODULE__ELEMENTTREE_STATE = "yes"
      MODULE__FUNCTOOLS_LDFLAGS = ""
      MODULE__GDBM_CFLAGS = ""
      MODULE__GDBM_LDFLAGS = "-lgdbm"
      MODULE__GDBM_STATE = "yes"
      MODULE__HASHLIB_CFLAGS = ""
      MODULE__HASHLIB_DEPS = "../Modules/hashlib.h"
      MODULE__HASHLIB_LDFLAGS = "-lcrypto"
      MODULE__HASHLIB_STATE = "yes"
      MODULE__HEAPQ_LDFLAGS = ""
      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_CFLAGS = "-I../Modules/_hacl/include -I../Modules/_hacl/internal -D_BSD_SOURCE -D_DEFAULT_SOURCE"
      MODULE__MD5_DEPS = "../Modules/hashlib.h \ Modules/_hacl/Hacl_Hash_MD5.h Modules/_hacl/Hacl_Hash_MD5.c"
      MODULE__MD5_STATE = "yes"
      MODULE__MULTIBYTECODEC_DEPS = "../Modules/cjkcodecs/multibytecodec.h"
      MODULE__MULTIBYTECODEC_STATE = "yes"
      MODULE__MULTIPROCESSING_CFLAGS = "-I../Modules/_multiprocessing"
      MODULE__MULTIPROCESSING_STATE = "yes"
      MODULE__OPCODE_LDFLAGS = ""
      MODULE__OPCODE_STATE = "yes"
      MODULE__OPERATOR_LDFLAGS = ""
      MODULE__PICKLE_LDFLAGS = ""
      MODULE__PICKLE_STATE = "yes"
      MODULE__POSIXSHMEM_CFLAGS = "-I../Modules/_multiprocessing"
      MODULE__POSIXSHMEM_LDFLAGS = ""
      MODULE__POSIXSHMEM_STATE = "yes"
      MODULE__POSIXSUBPROCESS_LDFLAGS = ""
      MODULE__POSIXSUBPROCESS_STATE = "yes"
      MODULE__QUEUE_STATE = "yes"
      MODULE__RANDOM_LDFLAGS = ""
      MODULE__RANDOM_STATE = "yes"
      MODULE__SCPROXY_STATE = "n/a"
      MODULE__SHA1_CFLAGS = "-I../Modules/_hacl/include -I../Modules/_hacl/internal -D_BSD_SOURCE -D_DEFAULT_SOURCE"
      MODULE__SHA1_DEPS = "../Modules/hashlib.h \ Modules/_hacl/Hacl_Hash_SHA1.h Modules/_hacl/Hacl_Hash_SHA1.c"
      MODULE__SHA1_STATE = "yes"
      MODULE__SHA2_CFLAGS = "-I../Modules/_hacl/include -I../Modules/_hacl/internal -D_BSD_SOURCE -D_DEFAULT_SOURCE"
      MODULE__SHA2_DEPS = "../Modules/hashlib.h \ Modules/_hacl/libHacl_Hash_SHA2.a"
      MODULE__SHA2_STATE = "yes"
      MODULE__SHA3_DEPS = "../Modules/hashlib.h \ Modules/_hacl/Hacl_Hash_SHA3.h Modules/_hacl/Hacl_Hash_SHA3.c"
      MODULE__SHA3_STATE = "yes"
      MODULE__SIGNAL_LDFLAGS = ""
      MODULE__SOCKET_DEPS = "../Modules/socketmodule.h ../Modules/addrinfo.h ../Modules/getaddrinfo.c ../Modules/getnameinfo.c"
      MODULE__SOCKET_LDFLAGS = ""
      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_LDFLAGS = ""
      MODULE__STRUCT_STATE = "yes"
      MODULE__SYMTABLE_LDFLAGS = ""
      MODULE__TESTBUFFER_STATE = "yes"
      MODULE__TESTCAPI_DEPS = "../Modules/_testcapi/testcapi_long.h ../Modules/_testcapi/parts.h ../Modules/_testcapi/util.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_LDFLAGS = ""
      MODULE__TYPING_STATE = "yes"
      MODULE__UUID_CFLAGS = "-I/usr/include/uuid"
      MODULE__UUID_LDFLAGS = "-luuid"
      MODULE__UUID_STATE = "yes"
      MODULE__WEAKREF_LDFLAGS = ""
      MODULE__XXINTERPCHANNELS_STATE = "yes"
      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 = "\"
      OPT = "-DNDEBUG -g -O2 -Wall"
      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 = ""
      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,sha2,sha3,blake2""
      PY_BUILTIN_MODULE_CFLAGS = "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE_BUILTIN"
      PY_CFLAGS = "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2   "
      PY_CFLAGS_NODIST = "-std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal"
      PY_COERCE_C_LOCALE = "1"
      PY_CORE_CFLAGS = "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPy_BUILD_CORE"
      PY_CORE_LDFLAGS = "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      PY_CPPFLAGS = "-IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2"
      PY_ENABLE_SHARED = "1"
      PY_HAVE_PERF_TRAMPOLINE = "1"
      PY_LDFLAGS = "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      PY_LDFLAGS_NODIST = ""
      PY_LDFLAGS_NOLTO = "-Wl,-Bsymbolic-functions      -g -fwrapv -O2   "
      PY_SQLITE_ENABLE_LOAD_EXTENSION = "1"
      PY_SQLITE_HAVE_SERIALIZE = "1"
      PY_SSL_DEFAULT_CIPHERS = "1"
      PY_SSL_DEFAULT_CIPHER_STRING = "0"
      PY_STDMODULE_CFLAGS = "-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -g       -fstack-protector-strong -Wformat -Werror=format-security  -g -fwrapv -O2    -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden  -I../Include/internal -IObjects -IInclude -IPython -I. -I../Include -Wdate-time -D_FORTIFY_SOURCE=2 -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=/build/python3.12-pOdM36/python3.12-3.12.13/build-shared"
      SCRIPTDIR = "/usr/lib"
      SCRIPT_2TO3 = "build/scripts-3.12/2to3-3.12"
      SCRIPT_IDLE = "build/scripts-3.12/idle3.12"
      SCRIPT_PYDOC = "build/scripts-3.12/pydoc3.12"
      SETPGRP_HAVE_ARG = "0"
      SHAREDMODS = "Modules/_asyncio.cpython-312-x86_64-linux-gnu.so Modules/_contextvars.cpython-312-x86_64-linux-gnu.so Modules/_json.cpython-312-x86_64-linux-gnu.so Modules/_lsprof.cpython-312-x86_64-linux-gnu.so Modules/_queue.cpython-312-x86_64-linux-gnu.so Modules/_xxsubinterpreters.cpython-312-x86_64-linux-gnu.so Modules/_xxinterpchannels.cpython-312-x86_64-linux-gnu.so Modules/_zoneinfo.cpython-312-x86_64-linux-gnu.so Modules/audioop.cpython-312-x86_64-linux-gnu.so Modules/_decimal.cpython-312-x86_64-linux-gnu.so Modules/_bz2.cpython-312-x86_64-linux-gnu.so Modules/_lzma.cpython-312-x86_64-linux-gnu.so Modules/_dbm.cpython-312-x86_64-linux-gnu.so Modules/_gdbm.cpython-312-x86_64-linux-gnu.so Modules/readline.cpython-312-x86_64-linux-gnu.so Modules/_codecs_cn.cpython-312-x86_64-linux-gnu.so Modules/_codecs_hk.cpython-312-x86_64-linux-gnu.so Modules/_codecs_iso2022.cpython-312-x86_64-linux-gnu.so Modules/_codecs_jp.cpython-312-x86_64-linux-gnu.so Modules/_codecs_kr.cpython-312-x86_64-linux-gnu.so Modules/_codecs_tw.cpython-312-x86_64-linux-gnu.so Modules/_multibytecodec.cpython-312-x86_64-linux-gnu.so Modules/_crypt.cpython-312-x86_64-linux-gnu.so Modules/mmap.cpython-312-x86_64-linux-gnu.so Modules/nis.cpython-312-x86_64-linux-gnu.so Modules/ossaudiodev.cpython-312-x86_64-linux-gnu.so Modules/resource.cpython-312-x86_64-linux-gnu.so Modules/termios.cpython-312-x86_64-linux-gnu.so Modules/_posixshmem.cpython-312-x86_64-linux-gnu.so Modules/_multiprocessing.cpython-312-x86_64-linux-gnu.so Modules/_ctypes.cpython-312-x86_64-linux-gnu.so Modules/_curses.cpython-312-x86_64-linux-gnu.so Modules/_curses_panel.cpython-312-x86_64-linux-gnu.so Modules/_sqlite3.cpython-312-x86_64-linux-gnu.so Modules/_ssl.cpython-312-x86_64-linux-gnu.so Modules/_hashlib.cpython-312-x86_64-linux-gnu.so Modules/_uuid.cpython-312-x86_64-linux-gnu.so Modules/_tkinter.cpython-312-x86_64-linux-gnu.so Modules/xxsubtype.cpython-312-x86_64-linux-gnu.so Modules/_xxtestfuzz.cpython-312-x86_64-linux-gnu.so Modules/_testbuffer.cpython-312-x86_64-linux-gnu.so Modules/_testinternalcapi.cpython-312-x86_64-linux-gnu.so Modules/_testcapi.cpython-312-x86_64-linux-gnu.so Modules/_testclinic.cpython-312-x86_64-linux-gnu.so Modules/_testimportmultiple.cpython-312-x86_64-linux-gnu.so Modules/_testmultiphase.cpython-312-x86_64-linux-gnu.so Modules/_testsinglephase.cpython-312-x86_64-linux-gnu.so Modules/_ctypes_test.cpython-312-x86_64-linux-gnu.so Modules/xxlimited.cpython-312-x86_64-linux-gnu.so Modules/xxlimited_35.cpython-312-x86_64-linux-gnu.so"
      SHELL = "/bin/sh -e"
      SHLIBS = "-ldl"
      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-312-x86_64-linux-gnu"
      SRCDIRS = "Modules   Modules/_blake2   Modules/_ctypes   Modules/_decimal   Modules/_decimal/libmpdec   Modules/_hacl   Modules/_io   Modules/_multiprocessing   Modules/_sqlite   Modules/_sre   Modules/_testcapi   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=/build/python3.12-pOdM36/python3.12-3.12.13/build-shared ./python -E"
      TESTPYTHONOPTS = ""
      TESTRUNNER = "LD_LIBRARY_PATH=/build/python3.12-pOdM36/python3.12-3.12.13/build-shared ./python -E ../Tools/scripts/run_tests.py"
      TESTSUBDIRS = "idlelib/idle_test \"
      TESTTIMEOUT = "1200"
      TEST_MODULES = "yes"
      THREAD_STACK_SIZE = "0"
      TIMEMODULE_LIB = "0"
      TM_IN_SYS_TIME = "0"
      TZPATH = "/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo"
      UNICODE_DEPS = "\"
      UNIVERSALSDK = ""
      UPDATE_FILE = "../Tools/build/update_file.py"
      USE_COMPUTED_GOTOS = "1"
      VERSION = "3.12"
      VPATH = ".."
      WASM_ASSETS_DIR = "./usr"
      WASM_STDLIB = "./usr/lib/python3.12/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 = "/build/python3.12-pOdM36/python3.12-3.12.13/build-shared"
      abs_srcdir = "/build/python3.12-pOdM36/python3.12-3.12.13/build-shared/.."
      base = "/home/<user>/code/project-name/.venv"
      datarootdir = "/usr/share"
      exec_prefix = "/usr"
      installed_base = "/usr"
      installed_platbase = "/usr"
      multiarchsubdir = "/x86_64-linux-gnu"
      platbase = "/home/<user>/code/project-name/.venv"
      platlibdir = "lib"
      prefix = "/usr"
      projectbase = "/usr/bin"
      py_version = "3.12.13"
      py_version_nodot = "312"
      py_version_nodot_plat = ""
      py_version_short = "3.12"
      srcdir = "/usr/lib/python3.12/config-3.12-x86_64-linux-gnu"
      userbase = "/home/<user>/.local"

Example pyproject.toml

[project]
name = "poetry-issue"
version = "0.1.0"
requires-python = ">=3.12"

[[tool.poetry.source]]
name = "pytorch_cpu"
url = "https://download.pytorch.org/whl/cpu"
priority = "explicit"

[tool.poetry.dependencies]
python = ">=3.12,<3.13"
torch = [
    { version = "^2.6.0+cpu", source = "pytorch_cpu", markers = "sys_platform == 'linux'" },
    { version = "^2.6.0", markers = "sys_platform == 'darwin'" }
]
torchvision = [
    { version = "0.21.0+cpu", source = "pytorch_cpu", markers = "sys_platform == 'linux'" },
    { version = "^0.21.0", markers = "sys_platform == 'darwin'" }
]

Poetry Runtime Logs

poetry-runtime.log

[poetry_lock_output.txt](https://github.com/user-attachments/files/30178856/poetry_lock_output.txt)

Activity

  1. dimbleby commented on Jul 20, 2026

    @dimbleby
    Contributor

    this is purely cosmetic

    • on linux, the +cpu torch has no dependency on triton
    • the not-+cpu torch only requires triton on linux

    so you never actually need triton, and the lockfile is correct - just noisy.

  2. nadinehelfer commented on Jul 20, 2026

    @nadinehelfer
    Author

    I understand, that this issue might seem purely cosmetic and in many use-cases it is. And I admit, that our use case is a little special, but let me explain:
    These wrong dependencies also get propagated to requirements.txt files generated with the poetry-export plugin. If you now want to process these automatically (e.g. in a build pipeline), this leads to errors. For example the command pip download will fail with the exported requirement triton==3.2.0 ; platform_system == "Linux" and platform_machine == "x86_64" and sys_platform == "darwin" and python_version == "3.12" generated with the exporter from the wrong poetry.lock file.

  3. dimbleby commented on Jul 20, 2026

    @dimbleby
    Contributor

    The requirement and marker is not wrong, it is just noisy. If pip is failing, that is a pip bug and you should report it there - it ought to have no difficulty evaluating that marker as false.

  4. nadinehelfer commented on Jul 20, 2026

    @nadinehelfer
    Author

    Sorry, but I don't get why you are of the opinion, that a requirement generated by Poetry basically saying "this package should only be installed if you run Linux and MacOS at the same time" should not be wrong.

  5. dimbleby commented on Jul 20, 2026

    @dimbleby
    Contributor

    I don't get why you are of the opinion, that a requirement generated by Poetry basically saying "this package should only be installed if you run Linux and MacOS at the same time" should not be wrong.

    because it just... isn't

    you might reasonably expect that no system will return Linux for platform.system() and darwin for sys.platform. But poetry does not have that knowledge baked in, so it produces this noisy marker.

    But everyone - including pip - should correctly evaluate this as false at runtime, so there is no non-cosmetic issue.

    What non-cosmetic issue do you think you are seeing?

  6. nadinehelfer commented on Jul 21, 2026

    @nadinehelfer
    Author

    Using platform_system works as expected in this case. Using sys_platform in the same way produces a different result, which was very surprising for me and is from my point of view 'wrong', while from your point of view it's just 'noisy'.

    I don't know if this issue can appear in another context and you definitely know Poetry way better than me. So I assume you are right with your assessment of criticality and I don't want to waste your time with more discussions.

    Also a workaround for my use-case exists, so it's nothing critical for me, too.

    Thanks for your time.

  7. dimbleby commented on Jul 21, 2026

    @dimbleby
    Contributor

    Feel free to make the case that this is important for some reason that I did not understand.

    So far the only actual failure that I saw you identify was "the command pip download will fail" - which, if so, sounds like a pip bug. But you didn't say what that failure looks like so it is hard to say.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working as expectedstatus/triageThis issue needs to be triaged

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions