Unrelated package causes differences of another package version resolution
Description
Take this pyproject.toml:
[project]
name = "repro"
description = ".."
dynamic = ["version"]
authors = []
requires-python = '>=3.9,<4.0'
dependencies = []
[tool.poetry]
version = "0.0.0"
packages = []
[tool.poetry.group.dev.dependencies]
pytest = "^8.4.2"
pytest-asyncio = "^1.2.0"
#cloud-sql-python-connector = "^1.18.5"
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
- Use Python 3.10 for venv (I did
poetry env use 3.10) - Run
poetry lock,poetry sync --no-root,poetry update. Packages get installed, lockfile created, nothing to update. - Uncomment the
cloud-sql-python-connectorrequirement, runpoetry lock,poetry sync --no-root - Run
poetry update. This is the bug - for some reason,pytest-asyncionow updates(1.2.0 -> 1.3.0), but before installing thecloud-sql-python-connector, it was not able to do that. There is now both 1.2.0 and 1.3.0 in lock file, and 1.3.0 gets installed only on Python >=3.10- Note that
poetry update pytest-asynciodoes not update it, only fullpoetry update.
- Note that
- Additionally,
pytest-asyncio==1.3.0entry in lockfile is completely missingbackports-asyncio-runnerdependency, which is specified asRequires-Dist: backports-asyncio-runner<2,>=1.1; python_version < "3.11"in the WHEEL metadata.- So when you run
poetry sync --no-rootagain (without changing anything else), it gets removed (which is strange in itself - why didn't the first sync remove it?)
- So when you run
So there are two bugs:
-
pytest-asyncioeither always should get updated, or should not, not sure which is correct - butcloud-sql-python-connectorand its deps should not change anything about that. -
pytest-asyncio1.3.0 must have thebackports-asyncio-runnerin its dependencies when installed.
Adding backports-asyncio-runner = { version = "^1.1", python = "<3.11" } to pyproject.toml makes Poetry downgrade pytest-asyncio to 1.2.0 again with lock+sync, but poetry update does update it back to 1.3.0.
Workarounds
None.
Poetry Installation Method
pipx
Operating System
MacOS
Poetry Version
Poetry (version 2.2.1)
Poetry Configuration
cache-dir = "/Users/vojtech.bocek/Library/Caches/pypoetry"
data-dir = "/Users/vojtech.bocek/Library/Application Support/pypoetry"
installer.max-workers = null
installer.no-binary = null
installer.only-binary = null
installer.parallel = true
installer.re-resolve = true
keyring.enabled = true
python.installation-dir = "{data-dir}/python" # /Users/vojtech.bocek/Library/Application Support/pypoetry/python
requests.max-retries = 0
solver.lazy-wheel = true
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" # /Users/vojtech.bocek/Library/Caches/pypoetry/virtualenvs
virtualenvs.prompt = "{project_name}-py{python_version}"
virtualenvs.use-poetry-python = false
Python Sysconfig
sysconfig.log
Platform: "macosx-15-arm64"
Python version: "3.10"
Current installation scheme: "posix_prefix"
Paths:
data = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv"
include = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10"
platinclude = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10"
platlib = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv/lib/python3.10/site-packages"
platstdlib = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv/lib/python3.10"
purelib = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv/lib/python3.10/site-packages"
scripts = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv/bin"
stdlib = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10"
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 = "/usr/bin/xcrun ar"
ARFLAGS = "rcs"
BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic"
BASECPPFLAGS = ""
BASEMODLIBS = ""
BINDIR = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/bin"
BINLIBDEST = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10"
BLDLIBRARY = ""
BLDSHARED = "clang -bundle -undefined dynamic_lookup -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
BUILDEXE = ".exe"
BUILDPYTHON = "python.exe"
BUILD_GNU_TYPE = "aarch64-apple-darwin24.4.0"
BYTESTR_DEPS = "\"
CC = "clang"
CCSHARED = ""
CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
CFLAGSFORSHARED = ""
CFLAGS_ALIASING = "-fno-strict-aliasing"
CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
CONFIGURE_CFLAGS = "-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
CONFIGURE_CFLAGS_NODIST = "-I/opt/homebrew/include -flto -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden"
CONFIGURE_CPPFLAGS = "-I/opt/homebrew/include"
CONFIGURE_LDFLAGS = "-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
CONFIGURE_LDFLAGS_NODIST = "-L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -flto -Wl,-export_dynamic -g"
CONFIG_ARGS = "'--prefix=/opt/homebrew/opt/[email protected]' '--enable-ipv6' '--datarootdir=/opt/homebrew/opt/[email protected]/share' '--datadir=/opt/homebrew/opt/[email protected]/share' '--without-ensurepip' '--enable-loadable-sqlite-extensions' '--with-openssl=/opt/homebrew/opt/openssl@3' '--with-dbmliborder=gdbm:ndbm' '--enable-optimizations' '--with-system-expat' '--with-system-libmpdec' '--with-lto' '--enable-framework=/opt/homebrew/opt/[email protected]/Frameworks' '--with-dtrace' 'MACOSX_DEPLOYMENT_TARGET=15' 'CFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk' 'CFLAGS_NODIST=-I/opt/homebrew/include' 'LDFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk' 'LDFLAGS_NODIST=-L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib' 'CPPFLAGS=-I/opt/homebrew/include' 'CC=clang' 'PKG_CONFIG_PATH=/opt/homebrew/opt/pkgconf/lib/pkgconfig:/opt/homebrew/opt/mpdecimal/lib/pkgconfig:/opt/homebrew/opt/openssl@3/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig:/opt/homebrew/opt/sqlite/lib/pkgconfig:/opt/homebrew/opt/xz/lib/pkgconfig' 'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/Homebrew/os/mac/pkgconfig/15'"
CONFINCLUDEDIR = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include"
CONFINCLUDEPY = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10"
COREPYTHONPATH = ""
COVERAGE_INFO = "/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18/coverage.info"
COVERAGE_REPORT = "/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18/lcov-report"
COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report""
CPPFLAGS = "-I. -I./Include -I/opt/homebrew/include"
CXX = "clang++"
DESTDIRS = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10 /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10 /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload"
DESTLIB = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10"
DESTPATH = ""
DESTSHARED = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10/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 = "/usr/sbin/dtrace"
DTRACE_DEPS = "\"
DTRACE_HEADERS = "Include/pydtrace_probes.h"
DTRACE_OBJS = ""
DYNLOADFILE = "dynload_shlib.o"
ENABLE_IPV6 = "1"
ENSUREPIP = "no"
EXE = ""
EXEMODE = "755"
EXPERIMENTAL_ISOLATED_SUBINTERPRETERS = "0"
EXPORTSFROM = ""
EXPORTSYMS = ""
EXTRATESTOPTS = ""
EXTRA_CFLAGS = ""
EXT_SUFFIX = ".cpython-310-darwin.so"
FILEMODE = "644"
FLOAT_WORDS_BIGENDIAN = "0"
FLOCK_NEEDS_LIBBSD = "0"
GETPGRP_HAVE_ARG = "0"
GITBRANCH = ""
GITTAG = ""
GITVERSION = ""
GNULD = "no"
HAVE_ACCEPT4 = "0"
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 = "0"
HAVE_ATANH = "1"
HAVE_BIND_TEXTDOMAIN_CODESET = "0"
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 = "1"
HAVE_BROKEN_UNSETENV = "0"
HAVE_BUILTIN_ATOMIC = "1"
HAVE_CHFLAGS = "1"
HAVE_CHOWN = "1"
HAVE_CHROOT = "1"
HAVE_CLOCK = "1"
HAVE_CLOCK_GETRES = "1"
HAVE_CLOCK_GETTIME = "1"
HAVE_CLOCK_SETTIME = "1"
HAVE_CLOSE_RANGE = "0"
HAVE_COMPUTED_GOTOS = "1"
HAVE_CONFSTR = "1"
HAVE_CONIO_H = "0"
HAVE_COPYSIGN = "1"
HAVE_COPY_FILE_RANGE = "0"
HAVE_CRYPT_H = "0"
HAVE_CRYPT_R = "0"
HAVE_CTERMID = "1"
HAVE_CTERMID_R = "1"
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_DECL_ISFINITE = "1"
HAVE_DECL_ISINF = "1"
HAVE_DECL_ISNAN = "1"
HAVE_DECL_RTLD_DEEPBIND = "0"
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_DUP2 = "1"
HAVE_DUP3 = "0"
HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH = "1"
HAVE_DYNAMIC_LOADING = "1"
HAVE_ENDIAN_H = "0"
HAVE_EPOLL = "0"
HAVE_EPOLL_CREATE1 = "0"
HAVE_ERF = "1"
HAVE_ERFC = "1"
HAVE_ERRNO_H = "1"
HAVE_EVENTFD = "0"
HAVE_EXECV = "1"
HAVE_EXPLICIT_BZERO = "0"
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 = "0"
HAVE_FDOPENDIR = "1"
HAVE_FDWALK = "0"
HAVE_FEXECVE = "0"
HAVE_FINITE = "0"
HAVE_FLOCK = "1"
HAVE_FORK = "1"
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 = "0"
HAVE_GAI_STRERROR = "1"
HAVE_GAMMA = "0"
HAVE_GCC_ASM_FOR_MC68881 = "0"
HAVE_GCC_ASM_FOR_X64 = "0"
HAVE_GCC_ASM_FOR_X87 = "0"
HAVE_GCC_UINT128_T = "1"
HAVE_GETADDRINFO = "1"
HAVE_GETC_UNLOCKED = "1"
HAVE_GETENTROPY = "1"
HAVE_GETGRGID_R = "1"
HAVE_GETGRNAM_R = "1"
HAVE_GETGROUPLIST = "1"
HAVE_GETGROUPS = "1"
HAVE_GETHOSTBYNAME = "1"
HAVE_GETHOSTBYNAME_R = "0"
HAVE_GETHOSTBYNAME_R_3_ARG = "0"
HAVE_GETHOSTBYNAME_R_5_ARG = "0"
HAVE_GETHOSTBYNAME_R_6_ARG = "0"
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_GETPRIORITY = "1"
HAVE_GETPWENT = "1"
HAVE_GETPWNAM_R = "1"
HAVE_GETPWUID_R = "1"
HAVE_GETRANDOM = "0"
HAVE_GETRANDOM_SYSCALL = "0"
HAVE_GETRESGID = "0"
HAVE_GETRESUID = "0"
HAVE_GETSID = "1"
HAVE_GETSPENT = "0"
HAVE_GETSPNAM = "0"
HAVE_GETWD = "1"
HAVE_GLIBC_MEMMOVE_BUG = "0"
HAVE_GRP_H = "1"
HAVE_HSTRERROR = "1"
HAVE_HTOLE64 = "0"
HAVE_HYPOT = "1"
HAVE_IEEEFP_H = "0"
HAVE_IF_NAMEINDEX = "1"
HAVE_INET_ATON = "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 = "1"
HAVE_LANGINFO_H = "1"
HAVE_LARGEFILE_SUPPORT = "0"
HAVE_LCHFLAGS = "1"
HAVE_LCHMOD = "1"
HAVE_LCHOWN = "1"
HAVE_LGAMMA = "1"
HAVE_LIBDL = "1"
HAVE_LIBDLD = "0"
HAVE_LIBIEEE = "0"
HAVE_LIBINTL_H = "0"
HAVE_LIBREADLINE = "1"
HAVE_LIBRESOLV = "0"
HAVE_LIBSENDFILE = "0"
HAVE_LIBUTIL_H = "0"
HAVE_LIBUUID = "0"
HAVE_LINK = "1"
HAVE_LINKAT = "1"
HAVE_LINUX_AUXVEC_H = "0"
HAVE_LINUX_CAN_BCM_H = "0"
HAVE_LINUX_CAN_H = "0"
HAVE_LINUX_CAN_J1939_H = "0"
HAVE_LINUX_CAN_RAW_FD_FRAMES = "0"
HAVE_LINUX_CAN_RAW_H = "0"
HAVE_LINUX_CAN_RAW_JOIN_FILTERS = "0"
HAVE_LINUX_MEMFD_H = "0"
HAVE_LINUX_NETLINK_H = "0"
HAVE_LINUX_QRTR_H = "0"
HAVE_LINUX_RANDOM_H = "0"
HAVE_LINUX_TIPC_H = "0"
HAVE_LINUX_VM_SOCKETS_H = "0"
HAVE_LINUX_WAIT_H = "0"
HAVE_LOCKF = "1"
HAVE_LOG1P = "1"
HAVE_LOG2 = "1"
HAVE_LONG_DOUBLE = "1"
HAVE_LSTAT = "1"
HAVE_LUTIMES = "1"
HAVE_MADVISE = "1"
HAVE_MAKEDEV = "1"
HAVE_MBRTOWC = "1"
HAVE_MEMFD_CREATE = "0"
HAVE_MEMORY_H = "1"
HAVE_MEMRCHR = "0"
HAVE_MKDIRAT = "1"
HAVE_MKFIFO = "1"
HAVE_MKFIFOAT = "1"
HAVE_MKNOD = "1"
HAVE_MKNODAT = "1"
HAVE_MKTIME = "1"
HAVE_MMAP = "1"
HAVE_MREMAP = "0"
HAVE_NCURSES_H = "1"
HAVE_NDIR_H = "0"
HAVE_NETPACKET_PACKET_H = "0"
HAVE_NET_IF_H = "1"
HAVE_NICE = "1"
HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION = "0"
HAVE_OPENAT = "1"
HAVE_OPENPTY = "1"
HAVE_PATHCONF = "1"
HAVE_PAUSE = "1"
HAVE_PIPE2 = "0"
HAVE_PLOCK = "0"
HAVE_POLL = "1"
HAVE_POLL_H = "1"
HAVE_POSIX_FADVISE = "0"
HAVE_POSIX_FALLOCATE = "0"
HAVE_POSIX_SPAWN = "1"
HAVE_POSIX_SPAWNP = "1"
HAVE_PREAD = "1"
HAVE_PREADV = "1"
HAVE_PREADV2 = "0"
HAVE_PRLIMIT = "0"
HAVE_PROCESS_H = "0"
HAVE_PROTOTYPES = "1"
HAVE_PTHREAD_CONDATTR_SETCLOCK = "0"
HAVE_PTHREAD_DESTRUCTOR = "0"
HAVE_PTHREAD_GETCPUCLOCKID = "0"
HAVE_PTHREAD_H = "1"
HAVE_PTHREAD_INIT = "0"
HAVE_PTHREAD_KILL = "1"
HAVE_PTHREAD_SIGMASK = "1"
HAVE_PTY_H = "0"
HAVE_PWRITE = "1"
HAVE_PWRITEV = "1"
HAVE_PWRITEV2 = "0"
HAVE_READLINK = "1"
HAVE_READLINKAT = "1"
HAVE_READV = "1"
HAVE_REALPATH = "1"
HAVE_RENAMEAT = "1"
HAVE_RL_APPEND_HISTORY = "1"
HAVE_RL_CATCH_SIGNAL = "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_ROUND = "1"
HAVE_RTPSPAWN = "0"
HAVE_SCHED_GET_PRIORITY_MAX = "1"
HAVE_SCHED_H = "1"
HAVE_SCHED_RR_GET_INTERVAL = "0"
HAVE_SCHED_SETAFFINITY = "0"
HAVE_SCHED_SETPARAM = "0"
HAVE_SCHED_SETSCHEDULER = "0"
HAVE_SEM_CLOCKWAIT = "0"
HAVE_SEM_GETVALUE = "1"
HAVE_SEM_OPEN = "1"
HAVE_SEM_TIMEDWAIT = "0"
HAVE_SEM_UNLINK = "1"
HAVE_SENDFILE = "1"
HAVE_SETEGID = "1"
HAVE_SETEUID = "1"
HAVE_SETGID = "1"
HAVE_SETGROUPS = "1"
HAVE_SETHOSTNAME = "1"
HAVE_SETITIMER = "1"
HAVE_SETLOCALE = "1"
HAVE_SETPGID = "1"
HAVE_SETPGRP = "1"
HAVE_SETPRIORITY = "1"
HAVE_SETREGID = "1"
HAVE_SETRESGID = "0"
HAVE_SETRESUID = "0"
HAVE_SETREUID = "1"
HAVE_SETSID = "1"
HAVE_SETUID = "1"
HAVE_SETVBUF = "1"
HAVE_SHADOW_H = "0"
HAVE_SHM_OPEN = "1"
HAVE_SHM_UNLINK = "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 = "0"
HAVE_SIGWAIT = "1"
HAVE_SIGWAITINFO = "0"
HAVE_SNPRINTF = "1"
HAVE_SOCKADDR_ALG = "0"
HAVE_SOCKADDR_SA_LEN = "1"
HAVE_SOCKADDR_STORAGE = "1"
HAVE_SOCKETPAIR = "1"
HAVE_SPAWN_H = "1"
HAVE_SPLICE = "0"
HAVE_SSIZE_T = "1"
HAVE_STATVFS = "1"
HAVE_STAT_TV_NSEC = "0"
HAVE_STAT_TV_NSEC2 = "1"
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 = "1"
HAVE_STROPTS_H = "0"
HAVE_STRSIGNAL = "1"
HAVE_STRUCT_PASSWD_PW_GECOS = "1"
HAVE_STRUCT_PASSWD_PW_PASSWD = "1"
HAVE_STRUCT_STAT_ST_BIRTHTIME = "1"
HAVE_STRUCT_STAT_ST_BLKSIZE = "1"
HAVE_STRUCT_STAT_ST_BLOCKS = "1"
HAVE_STRUCT_STAT_ST_FLAGS = "1"
HAVE_STRUCT_STAT_ST_GEN = "1"
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_SYS_AUDIOIO_H = "0"
HAVE_SYS_AUXV_H = "0"
HAVE_SYS_BSDTTY_H = "0"
HAVE_SYS_DEVPOLL_H = "0"
HAVE_SYS_DIR_H = "0"
HAVE_SYS_ENDIAN_H = "0"
HAVE_SYS_EPOLL_H = "0"
HAVE_SYS_EVENTFD_H = "0"
HAVE_SYS_EVENT_H = "1"
HAVE_SYS_FILE_H = "1"
HAVE_SYS_IOCTL_H = "1"
HAVE_SYS_KERN_CONTROL_H = "1"
HAVE_SYS_LOADAVG_H = "0"
HAVE_SYS_LOCK_H = "1"
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 = "0"
HAVE_SYS_SOCKET_H = "1"
HAVE_SYS_STATVFS_H = "1"
HAVE_SYS_STAT_H = "1"
HAVE_SYS_SYSCALL_H = "1"
HAVE_SYS_SYSMACROS_H = "0"
HAVE_SYS_SYS_DOMAIN_H = "1"
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_TGAMMA = "1"
HAVE_TIMEGM = "1"
HAVE_TIMES = "1"
HAVE_TMPFILE = "1"
HAVE_TMPNAM = "1"
HAVE_TMPNAM_R = "0"
HAVE_TM_ZONE = "1"
HAVE_TRUNCATE = "1"
HAVE_TZNAME = "0"
HAVE_UCS4_TCL = "0"
HAVE_UNAME = "1"
HAVE_UNISTD_H = "1"
HAVE_UNLINKAT = "1"
HAVE_USABLE_WCHAR_T = "0"
HAVE_UTIL_H = "1"
HAVE_UTIMENSAT = "1"
HAVE_UTIMES = "1"
HAVE_UTIME_H = "1"
HAVE_UUID_CREATE = "0"
HAVE_UUID_ENC_BE = "0"
HAVE_UUID_GENERATE_TIME_SAFE = "0"
HAVE_UUID_H = "0"
HAVE_UUID_UUID_H = "1"
HAVE_VFORK = "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__GETPTY = "0"
HOST_GNU_TYPE = "aarch64-apple-darwin24.4.0"
INCLDIRSTOMAKE = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10 /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10"
INCLUDEDIR = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include"
INCLUDEPY = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/include/python3.10"
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 = "Python.framework/Versions/3.10/Python"
IO_H = "Modules/_io/_iomodule.h"
IO_OBJS = "\"
LDCXXSHARED = "clang++ -bundle -undefined dynamic_lookup"
LDFLAGS = "-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
LDLIBRARY = "Python.framework/Versions/3.10/Python"
LDLIBRARYDIR = ""
LDSHARED = "clang -bundle -undefined dynamic_lookup -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
LDVERSION = "3.10"
LIBC = ""
LIBDEST = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10"
LIBDIR = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib"
LIBFFI_INCLUDEDIR = ""
LIBM = ""
LIBOBJDIR = "Python/"
LIBOBJS = ""
LIBPC = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/pkgconfig"
LIBPL = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10/config-3.10-darwin"
LIBPYTHON = ""
LIBRARY = "libpython3.10.a"
LIBRARY_DEPS = "libpython3.10.a Python.framework/Versions/3.10/Python"
LIBRARY_OBJS = "\"
LIBRARY_OBJS_OMIT_FROZEN = "\"
LIBS = "-ldl -framework CoreFoundation"
LIBSUBDIRS = "asyncio \"
LINKCC = "clang"
LINKFORSHARED = "-Wl,-stack_size,1000000 -framework CoreFoundation /opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/Python"
LIPO_32BIT_FLAGS = ""
LIPO_INTEL64_FLAGS = ""
LLVM_PROF_ERR = "no"
LLVM_PROF_FILE = "LLVM_PROFILE_FILE="code-%p.profclangr""
LLVM_PROF_MERGER = "/usr/bin/xcrun llvm-profdata merge -output=code.profclangd *.profclangr"
LN = "ln"
LOCALMODLIBS = ""
MACHDEP = "darwin"
MACHDEP_OBJS = ""
MACHDESTLIB = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib/python3.10"
MACOSX_DEPLOYMENT_TARGET = "15"
MAINCC = "clang"
MAJOR_IN_MKDEV = "0"
MAJOR_IN_SYSMACROS = "0"
MAKESETUP = "./Modules/makesetup"
MANDIR = "/opt/homebrew/opt/[email protected]/share/man"
MKDIR_P = "./install-sh -c -d"
MODBUILT_NAMES = "posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype"
MODDISABLED_NAMES = ""
MODLIBS = ""
MODOBJS = "Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/symtablemodule.o Modules/xxsubtype.o"
MODULE_OBJS = "\"
MULTIARCH = "darwin"
MULTIARCH_CPPFLAGS = "-DMULTIARCH=\"darwin\""
MVWDELCH_IS_EXPRESSION = "1"
NO_AS_NEEDED = ""
OBJECT_OBJS = "\"
OPENSSL_INCLUDES = "-I/opt/homebrew/opt/openssl@3/include"
OPENSSL_LDFLAGS = "-L/opt/homebrew/opt/openssl@3/lib"
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-instr-generate"
PGO_PROF_USE_FLAG = "-fprofile-instr-use=code.profclangd"
PLATLIBDIR = "lib"
POBJS = "\"
POSIX_SEMAPHORES_NOT_ENABLED = "0"
PROFILE_TASK = "-m test --pgo --timeout=1200"
PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT = "0"
PTHREAD_SYSTEM_SCHED_SUPPORTED = "1"
PURIFY = ""
PY3LIBRARY = ""
PYLONG_BITS_IN_DIGIT = "0"
PYTHON = "python"
PYTHONFRAMEWORK = "Python"
PYTHONFRAMEWORKDIR = "Python.framework"
PYTHONFRAMEWORKINSTALLDIR = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework"
PYTHONFRAMEWORKPREFIX = "/opt/homebrew/opt/[email protected]/Frameworks"
PYTHONPATH = ""
PYTHON_FOR_BUILD = "./python.exe -E"
PYTHON_FOR_REGEN = ""
PYTHON_HEADERS = "\"
PYTHON_OBJS = "\"
PY_BUILTIN_HASHLIB_HASHES = ""md5,sha1,sha256,sha512,sha3,blake2""
PY_BUILTIN_MODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -I/opt/homebrew/include -flto -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-instr-use=code.profclangd -I./Include/internal -I. -I./Include -I/opt/homebrew/include -DPy_BUILD_CORE_BUILTIN"
PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
PY_CFLAGS_NODIST = "-I/opt/homebrew/include -flto -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-instr-use=code.profclangd -I./Include/internal"
PY_COERCE_C_LOCALE = "1"
PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -I/opt/homebrew/include -flto -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-instr-use=code.profclangd -I./Include/internal -I. -I./Include -I/opt/homebrew/include -DPy_BUILD_CORE"
PY_CORE_LDFLAGS = "-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -flto -Wl,-export_dynamic -g"
PY_CPPFLAGS = "-I. -I./Include -I/opt/homebrew/include"
PY_ENABLE_SHARED = "0"
PY_FORMAT_SIZE_T = ""z""
PY_LDFLAGS = "-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk"
PY_LDFLAGS_NODIST = "-L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -flto -Wl,-export_dynamic -g"
PY_SSL_DEFAULT_CIPHERS = "1"
PY_SSL_DEFAULT_CIPHER_STRING = "0"
PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -I/opt/homebrew/include -flto -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-instr-use=code.profclangd -I./Include/internal -I. -I./Include -I/opt/homebrew/include"
Py_DEBUG = "0"
Py_ENABLE_SHARED = "0"
Py_HASH_ALGORITHM = "0"
Py_TRACE_REFS = "0"
QUICKTESTOPTS = "-x test_subprocess test_io test_lib2to3 \"
READELF = ":"
RESSRCDIR = "Mac/Resources/framework"
RETSIGTYPE = "void"
RUNSHARED = "DYLD_FRAMEWORK_PATH=/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18"
SCRIPTDIR = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10/lib"
SETPGRP_HAVE_ARG = "0"
SHELL = "/bin/sh"
SHLIBS = "-ldl -framework CoreFoundation"
SHLIB_SUFFIX = ".so"
SHM_NEEDS_LIBRT = "0"
SIGNED_RIGHT_SHIFT_ZERO_FILLS = "0"
SITEPATH = ""
SIZEOF_DOUBLE = "8"
SIZEOF_FLOAT = "4"
SIZEOF_FPOS_T = "8"
SIZEOF_INT = "4"
SIZEOF_LONG = "8"
SIZEOF_LONG_DOUBLE = "8"
SIZEOF_LONG_LONG = "8"
SIZEOF_OFF_T = "8"
SIZEOF_PID_T = "4"
SIZEOF_PTHREAD_KEY_T = "8"
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"
SO = ".cpython-310-darwin.so"
SOABI = "cpython-310-darwin"
SRCDIRS = "Parser Objects Python Modules Modules/_io Programs"
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 = ""
SYS_SELECT_WITH_SYS_TIME = "1"
TCLTK_INCLUDES = ""
TCLTK_LIBS = ""
TESTOPTS = ""
TESTPATH = ""
TESTPYTHON = "DYLD_FRAMEWORK_PATH=/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18 ./python.exe"
TESTPYTHONOPTS = ""
TESTRUNNER = "DYLD_FRAMEWORK_PATH=/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18 ./python.exe ./Tools/scripts/run_tests.py"
TESTSUBDIRS = "ctypes/test \"
TESTTIMEOUT = "1200"
TEST_MODULES = "yes"
THREAD_STACK_SIZE = "0x1000000"
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.10"
WHEEL_PKG_DIR = ""
WINDOW_HAS_FLAGS = "1"
WITH_DECIMAL_CONTEXTVAR = "1"
WITH_DOC_STRINGS = "1"
WITH_DTRACE = "1"
WITH_DYLD = "1"
WITH_EDITLINE = "0"
WITH_LIBINTL = "0"
WITH_NEXT_FRAMEWORK = "1"
WITH_PYMALLOC = "1"
WITH_VALGRIND = "0"
X87_DOUBLE_ROUNDING = "0"
XMLLIBSUBDIRS = "xml xml/dom xml/etree xml/parsers xml/sax"
abiflags = ""
abs_builddir = "/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18"
abs_srcdir = "/private/tmp/pythonA3.10-20250927-6996-ryawss/Python-3.10.18"
base = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv"
datarootdir = "/opt/homebrew/opt/[email protected]/share"
exec_prefix = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10"
installed_base = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10"
installed_platbase = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10"
platbase = "/Users/vojtech.bocek/work/tmp/poetry_repro/.venv"
platlibdir = "lib"
prefix = "/opt/homebrew/opt/[email protected]/Frameworks/Python.framework/Versions/3.10"
projectbase = "/opt/homebrew/Cellar/[email protected]/3.10.18_1/Frameworks/Python.framework/Versions/3.10/bin"
py_version = "3.10.18"
py_version_nodot = "310"
py_version_nodot_plat = ""
py_version_short = "3.10"
srcdir = "/opt/homebrew/Cellar/[email protected]/3.10.18_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/config-3.10-darwin"
userbase = "/Users/vojtech.bocek/Library/Python/3.10"
Poetry Runtime Logs
log of `poetry update -vvv` when `cloud-sql-python-connector` is commented out
Loading configuration file /Users/vojtech.bocek/Library/Application Support/pypoetry/config.toml
Using virtualenv: /Users/vojtech.bocek/work/tmp/poetry_repro/.venv
File '' doesn't exist.
Loading environment variables.
Checking keyring availability: Checking if keyring is available
[keyring:keyring.backend] Loading KWallet
[keyring:keyring.backend] Loading SecretService
[keyring:keyring.backend] Loading Windows
[keyring:keyring.backend] Loading chainer
[keyring:keyring.backend] Loading libsecret
[keyring:keyring.backend] Loading macOS
Using keyring backend 'macOS Keyring'
Available
Updating dependencies
Resolving dependencies...
1: fact: repro is 0.0.0
1: derived: repro
1: fact: repro depends on pytest (^8.4.2)
1: fact: repro depends on pytest-asyncio (^1.2.0)
1: selecting repro (0.0.0)
1: derived: pytest-asyncio (>=1.2.0,<2.0.0)
1: derived: pytest (>=8.4.2,<9.0.0)
Creating new session for pypi.org
Source (PyPI): 2 packages found for pytest-asyncio >=1.2.0,<2.0.0
Source (PyPI): 1 packages found for pytest >=8.4.2,<9.0.0
1: fact: pytest (8.4.2) depends on colorama (>=0.4)
1: fact: pytest (8.4.2) depends on exceptiongroup (>=1)
1: fact: pytest (8.4.2) depends on iniconfig (>=1)
1: fact: pytest (8.4.2) depends on packaging (>=20)
1: fact: pytest (8.4.2) depends on pluggy (>=1.5,<2)
1: fact: pytest (8.4.2) depends on pygments (>=2.7.2)
1: fact: pytest (8.4.2) depends on tomli (>=1)
1: selecting pytest (8.4.2)
1: derived: tomli (>=1)
1: derived: pygments (>=2.7.2)
1: derived: pluggy (>=1.5,<2)
1: derived: packaging (>=20)
1: derived: iniconfig (>=1)
1: derived: exceptiongroup (>=1)
1: derived: colorama (>=0.4)
Source (PyPI): 16 packages found for tomli >=1
Source (PyPI): 24 packages found for pygments >=2.7.2
Source (PyPI): 2 packages found for pluggy >=1.5,<2
Source (PyPI): 21 packages found for packaging >=20
Source (PyPI): 8 packages found for iniconfig >=1
Source (PyPI): 13 packages found for exceptiongroup >=1
Source (PyPI): 6 packages found for colorama >=0.4
1: fact: pytest-asyncio (1.3.0) requires Python >=3.10
1: derived: not pytest-asyncio (==1.3.0)
1: fact: pytest-asyncio (1.2.0) depends on backports-asyncio-runner (>=1.1,<2)
1: fact: pytest-asyncio (1.2.0) depends on pytest (>=8.2,<9)
1: fact: pytest-asyncio (1.2.0) depends on typing-extensions (>=4.12)
1: selecting pytest-asyncio (1.2.0)
1: derived: typing-extensions (>=4.12)
1: derived: backports-asyncio-runner (>=1.1,<2)
Source (PyPI): 9 packages found for typing-extensions >=4.12
Source (PyPI): 2 packages found for backports-asyncio-runner >=1.1,<2
1: fact: exceptiongroup (1.3.0) depends on typing-extensions (>=4.6.0)
1: selecting exceptiongroup (1.3.0)
1: derived: typing-extensions (>=4.6.0)
1: selecting pygments (2.19.2)
1: selecting packaging (25.0)
1: selecting tomli (2.3.0)
1: selecting typing-extensions (4.15.0)
1: fact: iniconfig (2.3.0) requires Python >=3.10
1: derived: not iniconfig (==2.3.0)
1: fact: iniconfig (2.2.0) requires Python >=3.10
1: derived: not iniconfig (==2.2.0)
1: selecting iniconfig (2.1.0)
1: selecting colorama (0.4.6)
1: selecting pluggy (1.6.0)
1: selecting backports-asyncio-runner (1.2.0)
1: Version solving took 0.045 seconds.
1: Tried 1 solutions.
Finding the necessary packages for the current system
Source (PyPI): 1 packages found for pytest-asyncio >=1.2.0,<2.0.0
Source (PyPI): 1 packages found for pytest >=8.4.2,<9.0.0
Source (PyPI): 1 packages found for typing-extensions >=4.12
Source (PyPI): 1 packages found for backports-asyncio-runner >=1.1,<2
Source (PyPI): 1 packages found for tomli >=1
Source (PyPI): 1 packages found for pygments >=2.7.2
Source (PyPI): 1 packages found for pluggy >=1.5,<2
Source (PyPI): 1 packages found for packaging >=20
Source (PyPI): 1 packages found for iniconfig >=1
Source (PyPI): 1 packages found for exceptiongroup >=1
No dependencies to install or update
log of `poetry update -vvv` when `cloud-sql-python-connector` is enabled
(Attached as text file)
Relevant part of the lock file:
[[package]]
name = "pytest-asyncio"
version = "1.2.0"
markers = "python_full_version < \"3.14.0\" or platform_python_implementation == \"PyPy\""
[package.dependencies]
backports-asyncio-runner = {version = ">=1.1,<2", markers = "python_version < \"3.11\""}
[[package]]
name = "pytest-asyncio"
version = "1.3.0"
markers = "python_full_version >= \"3.14.0\" and platform_python_implementation != \"PyPy\""
[package.dependencies]
# no backports-asyncio-runner
The lock file itself does not seem to be incorrect. The markers are mutually exclusive. And backports-asyncio-runner is not required for python versions greater than 3.11.
What really is a bug is that 1.3.0 is installed for Python 3.10. It looks like this can be fixed by setting installer.re-resolve to false. It is true by default. Setting it to false has been introduced in Poetry 2.0. Maybe, it is time to change the defaults. (We will probably do not invest much time in fixing the old mode.)
pytest-asyncioeither always should get updated, or should not, not sure which is correct - butcloud-sql-python-connectorand its deps should not change anything about that.
I understand your point but it is not that simple. Poetry prefers not to split the dependency graph. However, adding a dependency can result in a split and that can result in an update in one branch. I would consider this an implementation detail.
2.
pytest-asyncio1.3.0 must have thebackports-asyncio-runnerin its dependencies when installed.
Only if the lock file entry is relevant for Python versions less than 3.11.
Thanks for the explanation, makes sense!
I did not notice this in lock file before - this is how it looks for me:
[[package]]
name = "pytest-asyncio"
version = "1.2.0"
description = "Pytest support for asyncio"
optional = false
python-versions = ">=3.9"
groups = ["dev"]
markers = "python_full_version < \"3.14.0\" or platform_python_implementation == \"PyPy\""
[package.dependencies]
backports-asyncio-runner = {version = ">=1.1,<2", markers = "python_version < \"3.11\""}
pytest = ">=8.2,<9"
typing-extensions = {version = ">=4.12", markers = "python_version < \"3.13\""}
...
[[package]]
name = "pytest-asyncio"
version = "1.3.0"
description = "Pytest support for asyncio"
optional = false
python-versions = ">=3.10"
groups = ["dev"]
markers = "python_full_version >= \"3.14.0\" and platform_python_implementation != \"PyPy\""
[package.dependencies]
pytest = ">=8.2,<10"
...
Note the python-versions attribute does not match the markers, I guess the python-versions is from the package itself, and markers is something poetry generates?
Note the
python-versionsattribute does not match themarkers, I guess thepython-versionsis from the package itself, andmarkersis something poetry generates?
Exactly. If I remember correctly, python-versions is just the requires-python from the package metadata. markers is the result of dependency resolution. It is always mutually exclusive for different versions of the same package. (If it was not that would be a bug.) If you set installer.re-resolve to false and run poetry install, Poetry just iterates over all lock file entries, evaluates markers for the target environment and installs the package if it evaluates to true. (If installer.re-resolve is true, it is more complicated and less comprehensible.)
I think I'm hitting the same symptom, but I'm not sure if the root cause is the same. In my case, I see Poetry ignoring an indirect dependency on exceptiongroup that should be coming from pytest 9.0.2. Everything looks fine with pytest itself, and if I install in a non-Poetry venv then it gets all of its deps installed. I pared it down to a minimal working example:
[tool.poetry]
name = "bug-repro"
version = "1.0"
description = "bug repro"
[tool.poetry.dependencies]
python = "^3.9"
pytest = ">=6.2.5"
pycodestyle = [
{version = "^2.9", python = ">=3.8,<3.12"},
{version = "^2.11", python = "^3.12"},
]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
$ poetry -V
Poetry (version 2.2.1)
$ poetry env use 3.10
Creating virtualenv bug-repro-XJuEv_hd-py3.10 in .../.cache/pypoetry/virtualenvs
Using virtualenv: .../.cache/pypoetry/virtualenvs/bug-repro-XJuEv_hd-py3.10
$ poetry run python -V
Python 3.10.17
$ poetry lock
Updating dependencies
Resolving dependencies... (0.8s)
Writing lock file
$ poetry sync
Installing dependencies from lock file
Package operations: 6 installs, 0 updates, 0 removals
- Installing iniconfig (2.3.0)
- Installing packaging (25.0)
- Installing pluggy (1.6.0)
- Installing pygments (2.19.2)
- Installing pycodestyle (2.14.0)
- Installing pytest (9.0.2)
Installing the current project: bug-repro (1.0)
$ poetry run pytest
Traceback (most recent call last):
File ".../.cache/pypoetry/virtualenvs/bug-repro-XJuEv_hd-py3.10/bin/pytest", line 5, in <module>
from pytest import console_main
File ".../.cache/pypoetry/virtualenvs/bug-repro-XJuEv_hd-py3.10/lib/python3.10/site-packages/pytest/__init__.py", line 8, in <module>
from _pytest._code import ExceptionInfo
File ".../.cache/pypoetry/virtualenvs/bug-repro-XJuEv_hd-py3.10/lib/python3.10/site-packages/_pytest/_code/__init__.py", line 5, in <module>
from .code import Code
File ".../.cache/pypoetry/virtualenvs/bug-repro-XJuEv_hd-py3.10/lib/python3.10/site-packages/_pytest/_code/code.py", line 53, in <module>
from exceptiongroup import BaseExceptionGroup
ModuleNotFoundError: No module named 'exceptiongroup'
Full poetry.lock
# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand.
[[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"
groups = ["main"]
markers = "sys_platform == \"win32\""
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 = "exceptiongroup"
version = "1.3.1"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
groups = ["main"]
markers = "python_version < \"3.11\""
files = [
{file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"},
{file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"},
]
[package.dependencies]
typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""}
[package.extras]
test = ["pytest (>=6)"]
[[package]]
name = "iniconfig"
version = "2.1.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.8"
groups = ["main"]
markers = "python_version < \"3.12\""
files = [
{file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"},
{file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"},
]
[[package]]
name = "iniconfig"
version = "2.3.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.10"
groups = ["main"]
markers = "python_version >= \"3.12\""
files = [
{file = "iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12"},
{file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"},
]
[[package]]
name = "packaging"
version = "25.0"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
{file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"},
{file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"},
]
[[package]]
name = "pluggy"
version = "1.6.0"
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"},
{file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"},
]
[package.extras]
dev = ["pre-commit", "tox"]
testing = ["coverage", "pytest", "pytest-benchmark"]
[[package]]
name = "pycodestyle"
version = "2.14.0"
description = "Python style guide checker"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d"},
{file = "pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783"},
]
[[package]]
name = "pygments"
version = "2.19.2"
description = "Pygments is a syntax highlighting package written in Python."
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
{file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"},
{file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"},
]
[package.extras]
windows-terminal = ["colorama (>=0.4.6)"]
[[package]]
name = "pytest"
version = "8.4.2"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.9"
groups = ["main"]
markers = "python_version < \"3.12\""
files = [
{file = "pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79"},
{file = "pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01"},
]
[package.dependencies]
colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""}
exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""}
iniconfig = ">=1"
packaging = ">=20"
pluggy = ">=1.5,<2"
pygments = ">=2.7.2"
tomli = {version = ">=1", markers = "python_version < \"3.11\""}
[package.extras]
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"]
[[package]]
name = "pytest"
version = "9.0.2"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.10"
groups = ["main"]
markers = "python_version >= \"3.12\""
files = [
{file = "pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b"},
{file = "pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11"},
]
[package.dependencies]
colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""}
iniconfig = ">=1.0.1"
packaging = ">=22"
pluggy = ">=1.5,<2"
pygments = ">=2.7.2"
[package.extras]
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"]
[[package]]
name = "tomli"
version = "2.3.0"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
groups = ["main"]
markers = "python_version < \"3.11\""
files = [
{file = "tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45"},
{file = "tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba"},
{file = "tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf"},
{file = "tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441"},
{file = "tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845"},
{file = "tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c"},
{file = "tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456"},
{file = "tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be"},
{file = "tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac"},
{file = "tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22"},
{file = "tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f"},
{file = "tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52"},
{file = "tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8"},
{file = "tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6"},
{file = "tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876"},
{file = "tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878"},
{file = "tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b"},
{file = "tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae"},
{file = "tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b"},
{file = "tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf"},
{file = "tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f"},
{file = "tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05"},
{file = "tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606"},
{file = "tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999"},
{file = "tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e"},
{file = "tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3"},
{file = "tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc"},
{file = "tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0"},
{file = "tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879"},
{file = "tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005"},
{file = "tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463"},
{file = "tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8"},
{file = "tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77"},
{file = "tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf"},
{file = "tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530"},
{file = "tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b"},
{file = "tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67"},
{file = "tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f"},
{file = "tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0"},
{file = "tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba"},
{file = "tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b"},
{file = "tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549"},
]
[[package]]
name = "typing-extensions"
version = "4.15.0"
description = "Backported and Experimental Type Hints for Python 3.9+"
optional = false
python-versions = ">=3.9"
groups = ["main"]
markers = "python_version < \"3.11\""
files = [
{file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"},
{file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"},
]
[metadata]
lock-version = "2.1"
python-versions = "^3.9"
content-hash = "2829084dfee060747e6aa5035ab9618d174d90e0b9eac86de09086435dda9be8"