Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Extra dependency group not installed for FastAPI #9266

Closed
cjuracek opened this issue Apr 3, 2024 · 17 comments
Closed

Extra dependency group not installed for FastAPI #9266

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

Comments

@cjuracek
Copy link

cjuracek commented Apr 3, 2024

Description

I would like to install fastapi with all optional dependencies (fastapi[all]). Following the FastAPI tutorial (with main.py in the working directory):

Command:

poetry add "fastapi[all]"
uvicorn main:app --reload

Actual behavior:

...
ModuleNotFoundError: No module named 'h11'

After poetry add -G app h11:

...
ModuleNotFoundError: No module named 'starlette'

After poetry add -G app starlette:

...
ModuleNotFoundError: No module named 'pydantic'

After poetry add -G app pydantic: Successful uvicorn command

Expected behavior: Immediate success after installation of fastapi without intermediate installs needed.

When installing the optional dependencies through pip via pip install "fastapi[all]", the manual h11, starlette, and pydantic installs are not needed. This suggests to me that poetry is not installing the optional dependencies defined by [all] in the same way pip is.

Workarounds

Manually poetry add the optional dependencies as needed

Poetry Installation Method

install.python-poetry.org

Operating System

MacOS Ventura 13.6.4

Poetry Version

1.8.2

Poetry Configuration

cache-dir = "/Users/cjuracek/Library/Caches/pypoetry"
experimental.system-git-client = false
installer.max-workers = null
installer.modern-installation = true
installer.no-binary = null
installer.parallel = true
keyring.enabled = true
repositories.artifactory-prod.url = <internal package repo>
solver.lazy-wheel = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs"  # /Users/cjuracek/Library/Caches/pypoetry/virtualenvs
virtualenvs.prefer-active-python = true
virtualenvs.prompt = "{project_name}-py{python_version}"
warnings.export = true

Python Sysconfig

Platform: "macosx-13.6-arm64"
Python version: "3.10"
Current installation scheme: "posix_prefix"

Paths: 
        data = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10"
        include = "/Users/cjuracek/.pyenv/versions/3.10.13/include/python3.10"
        platinclude = "/Users/cjuracek/.pyenv/versions/3.10.13/include/python3.10"
        platlib = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10/lib/python3.10/site-packages"
        platstdlib = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10/lib/python3.10"
        purelib = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10/lib/python3.10/site-packages"
        scripts = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10/bin"
        stdlib = "/Users/cjuracek/.pyenv/versions/3.10.13/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 = "ar"
        ARFLAGS = "rcs"
        BASECFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code"
        BASECPPFLAGS = ""
        BASEMODLIBS = ""
        BINDIR = "/Users/cjuracek/.pyenv/versions/3.10.13/bin"
        BINLIBDEST = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10"
        BLDLIBRARY = "-L. -lpython3.10"
        BLDSHARED = "clang -bundle -undefined dynamic_lookup -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
        BUILDEXE = ".exe"
        BUILDPYTHON = "python.exe"
        BUILD_GNU_TYPE = "aarch64-apple-darwin22.6.0"
        BYTESTR_DEPS = "\"
        CC = "clang"
        CCSHARED = ""
        CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall"
        CFLAGSFORSHARED = ""
        CFLAGS_ALIASING = "-fno-strict-aliasing"
        CFLAGS_NODIST = ""
        CONFIGFILES = "configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in"
        CONFIGURE_CFLAGS = ""
        CONFIGURE_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden"
        CONFIGURE_CPPFLAGS = "-I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
        CONFIGURE_LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
        CONFIGURE_LDFLAGS_NODIST = ""
        CONFIG_ARGS = "'--prefix=/Users/cjuracek/.pyenv/versions/3.10.13' '--enable-shared' '--libdir=/Users/cjuracek/.pyenv/versions/3.10.13/lib' '--with-openssl=/opt/homebrew/opt/openssl@3' 'CC=clang' 'LDFLAGS=-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib' 'LIBS=-L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib' 'CPPFLAGS=-I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include' 'PKG_CONFIG_PATH=/opt/homebrew/opt/openssl@3/lib/pkgconfig/:'"
        CONFINCLUDEDIR = "/Users/cjuracek/.pyenv/versions/3.10.13/include"
        CONFINCLUDEPY = "/Users/cjuracek/.pyenv/versions/3.10.13/include/python3.10"
        COREPYTHONPATH = ""
        COVERAGE_INFO = "/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13/coverage.info"
        COVERAGE_REPORT = "/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13/lcov-report"
        COVERAGE_REPORT_OPTIONS = "--no-branch-coverage --title "CPython lcov report""
        CPPFLAGS = "-I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
        CXX = "clang++"
        DESTDIRS = "/Users/cjuracek/.pyenv/versions/3.10.13 /Users/cjuracek/.pyenv/versions/3.10.13/lib /Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10 /Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10/lib-dynload"
        DESTLIB = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10"
        DESTPATH = ""
        DESTSHARED = "/Users/cjuracek/.pyenv/versions/3.10.13/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 = ""
        DTRACE_DEPS = "\"
        DTRACE_HEADERS = ""
        DTRACE_OBJS = ""
        DYNLOADFILE = "dynload_shlib.o"
        ENABLE_IPV6 = "1"
        ENSUREPIP = "upgrade"
        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 = "1"
        HAVE_BLUETOOTH_BLUETOOTH_H = "0"
        HAVE_BLUETOOTH_H = "0"
        HAVE_BROKEN_MBSTOWCS = "0"
        HAVE_BROKEN_NICE = "0"
        HAVE_BROKEN_PIPE_BUF = "0"
        HAVE_BROKEN_POLL = "0"
        HAVE_BROKEN_POSIX_SEMAPHORES = "0"
        HAVE_BROKEN_PTHREAD_SIGMASK = "0"
        HAVE_BROKEN_SEM_GETVALUE = "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 = "1"
        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-darwin22.6.0"
        INCLDIRSTOMAKE = "/Users/cjuracek/.pyenv/versions/3.10.13/include /Users/cjuracek/.pyenv/versions/3.10.13/include /Users/cjuracek/.pyenv/versions/3.10.13/include/python3.10 /Users/cjuracek/.pyenv/versions/3.10.13/include/python3.10"
        INCLUDEDIR = "/Users/cjuracek/.pyenv/versions/3.10.13/include"
        INCLUDEPY = "/Users/cjuracek/.pyenv/versions/3.10.13/include/python3.10"
        INSTALL = "/opt/homebrew/bin/ginstall -c"
        INSTALL_DATA = "/opt/homebrew/bin/ginstall -c -m 644"
        INSTALL_PROGRAM = "/opt/homebrew/bin/ginstall -c"
        INSTALL_SCRIPT = "/opt/homebrew/bin/ginstall -c"
        INSTALL_SHARED = "/opt/homebrew/bin/ginstall -c -m 755"
        INSTSONAME = "libpython3.10.dylib"
        IO_H = "Modules/_io/_iomodule.h"
        IO_OBJS = "\"
        LDCXXSHARED = "clang++ -bundle -undefined dynamic_lookup"
        LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
        LDFLAGS_NODIST = ""
        LDLIBRARY = "libpython3.10.dylib"
        LDLIBRARYDIR = ""
        LDSHARED = "clang -bundle -undefined dynamic_lookup -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
        LDVERSION = "3.10"
        LIBC = ""
        LIBDEST = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10"
        LIBDIR = "/Users/cjuracek/.pyenv/versions/3.10.13/lib"
        LIBFFI_INCLUDEDIR = ""
        LIBM = ""
        LIBOBJDIR = "Python/"
        LIBOBJS = ""
        LIBPC = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/pkgconfig"
        LIBPL = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10/config-3.10-darwin"
        LIBPYTHON = ""
        LIBRARY = "libpython3.10.a"
        LIBRARY_DEPS = "libpython3.10.a libpython3.10.dylib"
        LIBRARY_OBJS = "\"
        LIBRARY_OBJS_OMIT_FROZEN = "\"
        LIBS = "-lintl -ldl -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib  -framework CoreFoundation"
        LIBSUBDIRS = "asyncio \"
        LINKCC = "clang"
        LINKFORSHARED = "-Wl,-stack_size,1000000  -framework CoreFoundation"
        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 = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10"
        MACOSX_DEPLOYMENT_TARGET = "13.6"
        MAINCC = "clang"
        MAJOR_IN_MKDEV = "0"
        MAJOR_IN_SYSMACROS = "0"
        MAKESETUP = "./Modules/makesetup"
        MANDIR = "/Users/cjuracek/.pyenv/versions/3.10.13/share/man"
        MKDIR_P = "/opt/homebrew/bin/gmkdir -p"
        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 = ""
        PYTHONFRAMEWORKDIR = "no-framework"
        PYTHONFRAMEWORKINSTALLDIR = ""
        PYTHONFRAMEWORKPREFIX = ""
        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 -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPy_BUILD_CORE_BUILTIN"
        PY_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall"
        PY_CFLAGS_NODIST = "-std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal"
        PY_COERCE_C_LOCALE = "1"
        PY_CORE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -DPy_BUILD_CORE"
        PY_CORE_LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
        PY_CPPFLAGS = "-I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
        PY_ENABLE_SHARED = "1"
        PY_FORMAT_SIZE_T = ""z""
        PY_LDFLAGS = "-L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/opt/readline/lib -L/Users/cjuracek/.pyenv/versions/3.10.13/lib -Wl,-rpath,/Users/cjuracek/.pyenv/versions/3.10.13/lib -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
        PY_LDFLAGS_NODIST = ""
        PY_SSL_DEFAULT_CIPHERS = "1"
        PY_SSL_DEFAULT_CIPHER_STRING = "0"
        PY_STDMODULE_CFLAGS = "-Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden  -I./Include/internal -I. -I./Include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/opt/readline/include -I/Users/cjuracek/.pyenv/versions/3.10.13/include -I/opt/homebrew/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
        Py_DEBUG = "0"
        Py_ENABLE_SHARED = "1"
        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_LIBRARY_PATH=/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13"
        SCRIPTDIR = "/Users/cjuracek/.pyenv/versions/3.10.13/lib"
        SETPGRP_HAVE_ARG = "0"
        SHELL = "/bin/sh"
        SHLIBS = "-lintl -ldl -L/opt/homebrew/lib -Wl,-rpath,/opt/homebrew/lib  -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_LIBRARY_PATH=/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13 ./python.exe"
        TESTPYTHONOPTS = ""
        TESTRUNNER = "DYLD_LIBRARY_PATH=/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13 ./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 = "0"
        WITH_DYLD = "1"
        WITH_EDITLINE = "0"
        WITH_LIBINTL = "1"
        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 = "/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13"
        abs_srcdir = "/var/folders/83/vywv5hz92hl_jvx7kv7vc9jc0000gn/T/python-build.20240221085912.23013/Python-3.10.13"
        base = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10"
        datarootdir = "/Users/cjuracek/.pyenv/versions/3.10.13/share"
        exec_prefix = "/Users/cjuracek/.pyenv/versions/3.10.13"
        installed_base = "/Users/cjuracek/.pyenv/versions/3.10.13"
        installed_platbase = "/Users/cjuracek/.pyenv/versions/3.10.13"
        platbase = "/Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10"
        platlibdir = "lib"
        prefix = "/Users/cjuracek/.pyenv/versions/3.10.13"
        projectbase = "/Users/cjuracek/.pyenv/versions/3.10.13/bin"
        py_version = "3.10.13"
        py_version_nodot = "310"
        py_version_nodot_plat = ""
        py_version_short = "3.10"
        srcdir = "/Users/cjuracek/.pyenv/versions/3.10.13/lib/python3.10/config-3.10-darwin"
        userbase = "/Users/cjuracek/.local"

Example pyproject.toml

[tool.poetry]
name = "promissory-images"
version = "0.0.2"
description = "..."
authors = [...]
readme = "README.md"
classifiers = [
    "Programming Language :: Python :: 3",
]

[tool.flake8]
max-line-length = 99
extend-ignore = ["E203"]

[tool.isort]
profile = "black"

[tool.jupytext.formats]
"notebooks/" = "ipynb"
"notebooks/scripts/" = "py:percent"

[tool.mypy]
ignore_missing_imports = true

[tool.black]
line-length = 99

[tool.poetry.dependencies]
python = "~3.10"
pyyaml = "^6.0.1"
tqdm = "^4.64.0"
jsonlines = "^3.1.0"
matplotlib = "^3.7.1"
numpy = "^1.23"
Pillow = "^9.1.0"
scikit-learn = "1.0.2"
torch = "^1.10.1"
torchvision = "^0.13"
terminaltables = "^3.1.10"
torchsummary = "^1.5.1"
pytorchyolo = "^1.8.0"

[tool.poetry.group.dev.dependencies]
ipython = "^8.6.0"
pytest = "^7.2.0"
pytest-cov = "^4.0.0"
wheel = "^0.38.2"
ipywidgets = "^8.0.1"
jupyterlab = "^3.4.4"
tensorboard = "^2.7.0"

[tool.poetry.group.pre-commit.dependencies]
pre-commit = "^3.1.0"
black = "^22.6.0"  # Code formatter
isort = "^5.10.1"
jupytext = "^1.14.4"
mypy = "^1.0.1"  # Static type checker
nbstripout = "^0.6.1"
types-pyyaml = "^6.0.12.12"
pyproject-flake8 = "^6.1.0"

[tool.poetry.group.training.dependencies]
sagemaker-training = "^4.4.5"

[tool.poetry.group.app.dependencies]
fastapi = {extras = ["all"], version = "^0.110.1"}

[[tool.poetry.source]]
name = "artifactory-prod"
url = <Internal URL>
priority = "primary"

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

[tool.pytest.ini_options]
filterwarnings = []

Poetry Runtime Logs

Error is not from poetry command
@cjuracek cjuracek added kind/bug Something isn't working as expected status/triage This issue needs to be triaged labels Apr 3, 2024
@cjuracek cjuracek changed the title Extra dependency groups not added Extra dependency groups not installed for FastAPI Apr 3, 2024
@cjuracek cjuracek changed the title Extra dependency groups not installed for FastAPI Extra dependency group not installed for FastAPI Apr 3, 2024
@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

you need to activate the virtual environment in which poetry installs packages

here's a demonstration that poetry is working just fine

(foo) $ poetry add "fastapi[all]"
Using version ^0.110.1 for fastapi

Updating dependencies
Resolving dependencies... (2.6s)

Package operations: 32 installs, 0 updates, 0 removals

  - Installing exceptiongroup (1.2.0)
  - Installing idna (3.6)
  - Installing sniffio (1.3.1)
  - Installing typing-extensions (4.10.0)
  - Installing annotated-types (0.6.0)
  - Installing anyio (4.3.0)
  - Installing certifi (2024.2.2)
  - Installing h11 (0.14.0)
  - Installing pydantic-core (2.16.3)
  - Installing click (8.1.7)
  - Installing dnspython (2.6.1)
  - Installing httpcore (1.0.5)
  - Installing httptools (0.6.1)
  - Installing markupsafe (2.1.5)
  - Installing pydantic (2.6.4)
  - Installing python-dotenv (1.0.1)
  - Installing pyyaml (6.0.1)
  - Installing uvloop (0.19.0)
  - Installing watchfiles (0.21.0)
  - Installing websockets (12.0)
  - Installing email-validator (2.1.1)
  - Installing httpx (0.27.0)
  - Installing itsdangerous (2.1.2)
  - Installing jinja2 (3.1.3)
  - Installing orjson (3.10.0)
  - Installing pydantic-extra-types (2.6.0)
  - Installing pydantic-settings (2.2.1)
  - Installing python-multipart (0.0.9)
  - Installing starlette (0.37.2)
  - Installing ujson (5.9.0)
  - Installing uvicorn (0.29.0)
  - Installing fastapi (0.110.1)

Writing lock file

(foo) $ python -c "import h11"

(foo) $ echo $?
0

@cjuracek
Copy link
Author

cjuracek commented Apr 3, 2024

@dimbleby I suppose I should have clarified. I have been working in the project virtualenv the whole time:

promissory-images-D07q9i_Q-py3.10 ❯ poetry shell
Virtual environment already activated: /Users/cjuracek/Library/Caches/pypoetry/virtualenvs/promissory-images-D07q9i_Q-py3.10

promissory-images-D07q9i_Q-py3.10 ❯ poetry add -G app "fastapi[all]"
Using version ^0.110.1 for fastapi

Updating dependencies
Resolving dependencies... (0.9s)
Warning: The locked version 2.0.0 for executing is a yanked version. Reason for being yanked: Released 2.0.1 which is equivalent but added 'python_requires = >=3.5' so that pip install with Python 2 uses the previous version 1.2.0.

No dependencies to install or update

Writing lock file

promissory-images-D07q9i_Q-py3.10 ❯ python -c "import h11"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'h11'

Perhaps the yanked line is of note?

@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

poetry add -G app "fastapi[all]"

this is not what you said before

probably you need to poetry install --with=app

edit: though I get exactly the same result with or without -G app, so, shrug.

I guess a more reproducible way to reproduce this is needed. Maybe build a docker container demonstrating whatever it is that you are doing.

@cjuracek
Copy link
Author

cjuracek commented Apr 3, 2024

Sorry - I thought it was generally good practice to always have the project virtualenv activated, so I thought it was implied. Is the configuration given above not enough for reproducibility? Introducing docker will likely just have me stay with the workaround of manually specifying the optional dependencies.

@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

Is the configuration given above not enough for reproducibility?

apparently not - I tried and failed

@mfulgo
Copy link

mfulgo commented Apr 3, 2024

@cjuracek - We're seeing potentially-similar behavior to this with fastapi 0.110.1, and only when fetching it through our AWS CodeArtifact mirror. (Your config implies you're also using a mirror.) Version 0.110.0 seems fine, as does 0.110.1 directly from pypi. Installing 0.110.1 from our CodeArtifact mirror using pip resolves the dependencies correctly.

@cjuracek
Copy link
Author

cjuracek commented Apr 3, 2024

Yes, this worked @mfulgo! Thank you. For clarity, the fix was:

poetry add -G app "fastapi[all]==0.110.0" (version pinned for now)

This suggests the issue is fastapi related over poetry?

@mfulgo
Copy link

mfulgo commented Apr 3, 2024

We're still debugging, but the fact that pip is able to resolve the dependencies and install it correctly from our mirror implies that there's something failing with poetry.

@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

or: if it works from pypi but not through a mirror, that implies there's something failing with the mirror...

@mfulgo
Copy link

mfulgo commented Apr 3, 2024

@dimbleby, yes, that's possible. Can you think of a reason that pip would work correctly with the mirror while poetry would not?

I can reproduce the issue with a local devpi-server mirror. (It's conceivable that both Artifactory and AWS CodeArtifact are also using this library behind the scenes, and this fastapi package is triggering some kind of bug with devpi when accessed by poetry...)

# In a separate terminal
pipx install devpi-server
devpi-init
devpi-server

Add this to a pyproject.toml:

[[tool.poetry.source]]
priority = "default"
name = "local-devpi"
url = "http://localhost:3141/root/pypi/+simple/"

Then:

$ poetry add fastapi@0.110.1

Updating dependencies
Resolving dependencies... (0.2s)

Package operations: 1 install, 0 updates, 0 removals

  • Installing fastapi (0.110.1)

Writing lock file

Versus following that up with a pip install:

$ poetry run pip install -i http://localhost:3141/root/pypi/+simple/ fastapi==0.110.1
Looking in indexes: http://localhost:3141/root/pypi/+simple/
Requirement already satisfied: fastapi==0.110.1 in /Users/matt/Library/Caches/pypoetry/virtualenvs/fastapitest-8mDveA6q-py3.11/lib/python3.11/site-packages (0.110.1)
Collecting pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 (from fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/cc4/6fce866075808/pydantic-2.6.4-py3-none-any.whl (394 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 394.9/394.9 kB 9.6 MB/s eta 0:00:00
Collecting starlette<0.38.0,>=0.37.2 (from fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/6fe/59f29268538e5/starlette-0.37.2-py3-none-any.whl (71 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.9/71.9 kB 35.6 MB/s eta 0:00:00
Collecting typing-extensions>=4.8.0 (from fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/69b/1a937c3a51734/typing_extensions-4.10.0-py3-none-any.whl (33 kB)
Collecting annotated-types>=0.4.0 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/064/1064de18ba7a2/annotated_types-0.6.0-py3-none-any.whl (12 kB)
Collecting pydantic-core==2.16.3 (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/519/ae0312616026b/pydantic_core-2.16.3-cp311-cp311-macosx_10_12_x86_64.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 15.4 MB/s eta 0:00:00
Collecting anyio<5,>=3.4.0 (from starlette<0.38.0,>=0.37.2->fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/048/e05d0f6caeed7/anyio-4.3.0-py3-none-any.whl (85 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.6/85.6 kB 41.6 MB/s eta 0:00:00
Collecting idna>=2.8 (from anyio<5,>=3.4.0->starlette<0.38.0,>=0.37.2->fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/c05/567e9c24a6b9f/idna-3.6-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.6/61.6 kB 164.0 MB/s eta 0:00:00
Collecting sniffio>=1.1 (from anyio<5,>=3.4.0->starlette<0.38.0,>=0.37.2->fastapi==0.110.1)
  Downloading http://localhost:3141/root/pypi/%2Bf/2f6/da418d1f1e0fd/sniffio-1.3.1-py3-none-any.whl (10 kB)
Installing collected packages: typing-extensions, sniffio, idna, annotated-types, pydantic-core, anyio, starlette, pydantic
Successfully installed annotated-types-0.6.0 anyio-4.3.0 idna-3.6 pydantic-2.6.4 pydantic-core-2.16.3 sniffio-1.3.1 starlette-0.37.2 typing-extensions-4.10.0

@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

still does not reproduce for me, sorry:

$ poetry add fastapi@0.110.1
Warning: Found deprecated priority 'default' for source 'local-devpi' in pyproject.toml. You can achieve the same effect by changing the priority to 'primary' and putting the source first.

Updating dependencies
Resolving dependencies... (1.4s)

Package operations: 10 installs, 0 updates, 0 removals

  - Installing exceptiongroup (1.2.0)
  - Installing idna (3.6)
  - Installing sniffio (1.3.1)
  - Installing typing-extensions (4.10.0)
  - Installing annotated-types (0.6.0)
  - Installing anyio (4.3.0)
  - Installing pydantic-core (2.16.3)
  - Installing pydantic (2.6.4)
  - Installing starlette (0.37.2)
  - Installing fastapi (0.110.1)

Writing lock file

@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

maybe you somehow have something faulty in your poetry cache, try clearing it?

@ericdevries
Copy link

We have (or had) the same issue with dependencies in combination with a private repository not working, in our case Artifactory. Could not find any differences in the packages from pypi or the private one, nor any real differences in the files that would make it look like it should fail. In our case it was the httpcore project failing with version 1.0.5, even though 1.0.4 worked fine.

After debugging around the poetry source, I found the culprit to be the pkginfo.Wheel(str(path)) bit to return an empty list for requires_dist for the 1.0.5 version, but a proper list for the 1.0.4 version. I could not reproduce this with a custom installed pkginfo however, so it seems the version of pkginfo installed in poetry is not capable of handling newer packages from Artifactory (but it is from pypi?).

I fixed it by doing

poetry self lock
poetry self install

After that the package installs fine. Hope this helps.

@dimbleby
Copy link
Contributor

dimbleby commented Apr 3, 2024

ah, this is a variation of #9191, #9195, #9244 - with the same solution (upgrade pkginfo in your poetry installation)

please close

@mfulgo
Copy link

mfulgo commented Apr 3, 2024

That (plus a cache clear for good measure) worked for me.

@cjuracek
Copy link
Author

cjuracek commented Apr 4, 2024

I'll check the solution later, and report back if it doesn't work for some reason.

Thanks for the help everyone!

Copy link

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

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

No branches or pull requests

4 participants