PrefectHQ / marvin

✨ Build AI interfaces that spark joy
https://askmarvin.ai
Apache License 2.0
5.13k stars 326 forks source link

Marvin install fails #832

Open jsugg opened 7 months ago

jsugg commented 7 months ago

First check

Bug summary

Followed the Installation guide as per the official documentation Error running pytest -vv -m no_llm, starting with ImportError while loading conftest '/Users/juanpedrosugg/dev/marvin/tests/conftest.py'.

Reproduction

➜  marvin git:(main) ✗ python --version
Python 3.11.6
➜  marvin git:(main) ✗ python3.11 -m venv .venv
➜  marvin git:(main) ✗ source .venv/bin/activate
(.venv) ➜  marvin git:(main) ✗ pip install -e ".[dev]"
Obtaining file:///Users/juanpedrosugg/dev/marvin
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Installing backend dependencies ... done
  Preparing editable metadata (pyproject.toml) ... done
Collecting cachetools>=5
  Using cached cachetools-5.3.2-py3-none-any.whl.metadata (5.2 kB)
Collecting fastapi
  Using cached fastapi-0.109.2-py3-none-any.whl.metadata (25 kB)
Collecting httpx>=0.24.1
  Using cached httpx-0.26.0-py3-none-any.whl.metadata (7.6 kB)
Collecting jinja2>=3.1.2
  Using cached Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)
Collecting jsonpatch>=1.33
  Using cached jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)
Collecting openai>=1.1.0
  Using cached openai-1.11.1-py3-none-any.whl.metadata (18 kB)
Collecting pydantic>=2.4.2
  Using cached pydantic-2.6.1-py3-none-any.whl.metadata (83 kB)
Collecting pydantic-settings
  Using cached pydantic_settings-2.1.0-py3-none-any.whl.metadata (2.9 kB)
Collecting rich>=12
  Using cached rich-13.7.0-py3-none-any.whl.metadata (18 kB)
Collecting tiktoken>=0.4.0
  Using cached tiktoken-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl.metadata (6.6 kB)
Collecting typer>=0.9.0
  Using cached typer-0.9.0-py3-none-any.whl (45 kB)
Collecting typing-extensions>=4.0.0
  Using cached typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)
Collecting tzdata>=2023.3
  Using cached tzdata-2023.4-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting uvicorn>=0.22.0
  Using cached uvicorn-0.27.0.post1-py3-none-any.whl.metadata (6.4 kB)
Collecting black[jupyter]
  Using cached black-24.1.1-cp311-cp311-macosx_10_9_x86_64.whl.metadata (73 kB)
Collecting ipython
  Using cached ipython-8.21.0-py3-none-any.whl.metadata (5.9 kB)
Collecting mkdocs-autolinks-plugin~=0.7
  Using cached mkdocs_autolinks_plugin-0.7.1-py3-none-any.whl.metadata (1.0 kB)
Collecting mkdocs-awesome-pages-plugin~=2.8
  Using cached mkdocs_awesome_pages_plugin-2.9.2-py3-none-any.whl.metadata (13 kB)
Collecting mkdocs-markdownextradata-plugin~=0.2
  Using cached mkdocs_markdownextradata_plugin-0.2.5-py3-none-any.whl
Collecting mkdocs-jupyter>=0.24.1
  Using cached mkdocs_jupyter-0.24.6-py3-none-any.whl.metadata (9.4 kB)
Collecting mkdocs-material>=9.1.17 (from mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached mkdocs_material-9.5.7-py3-none-any.whl.metadata (16 kB)
Collecting mkdocstrings~=0.22 (from mkdocstrings[python]~=0.22; extra == "dev")
  Using cached mkdocstrings-0.24.0-py3-none-any.whl.metadata (7.7 kB)
Collecting pdbpp~=0.10
  Using cached pdbpp-0.10.3-py2.py3-none-any.whl (23 kB)
Collecting pre-commit<4.0,>=2.21
  Using cached pre_commit-3.6.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting ruff
  Using cached ruff-0.2.1-py3-none-macosx_10_12_x86_64.whl.metadata (23 kB)
Collecting anyio (from httpx>=0.24.1)
  Using cached anyio-4.2.0-py3-none-any.whl.metadata (4.6 kB)
Collecting certifi (from httpx>=0.24.1)
  Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting httpcore==1.* (from httpx>=0.24.1)
  Using cached httpcore-1.0.2-py3-none-any.whl.metadata (20 kB)
Collecting idna (from httpx>=0.24.1)
  Using cached idna-3.6-py3-none-any.whl.metadata (9.9 kB)
Collecting sniffio (from httpx>=0.24.1)
  Using cached sniffio-1.3.0-py3-none-any.whl (10 kB)
Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx>=0.24.1)
  Using cached h11-0.14.0-py3-none-any.whl (58 kB)
Collecting MarkupSafe>=2.0 (from jinja2>=3.1.2)
  Using cached MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl.metadata (3.0 kB)
Collecting jsonpointer>=1.9 (from jsonpatch>=1.33)
  Using cached jsonpointer-2.4-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting mkdocs>=1.2.3 (from mkdocs-autolinks-plugin~=0.7)
  Using cached mkdocs-1.5.3-py3-none-any.whl.metadata (6.2 kB)
Collecting natsort>=8.1.0 (from mkdocs-awesome-pages-plugin~=2.8)
  Using cached natsort-8.4.0-py3-none-any.whl.metadata (21 kB)
Collecting wcmatch>=7 (from mkdocs-awesome-pages-plugin~=2.8)
  Using cached wcmatch-8.5-py3-none-any.whl.metadata (5.1 kB)
Collecting ipykernel<7.0.0,>6.0.0 (from mkdocs-jupyter>=0.24.1)
  Using cached ipykernel-6.29.1-py3-none-any.whl.metadata (6.0 kB)
Collecting jupytext<2,>1.13.8 (from mkdocs-jupyter>=0.24.1)
  Using cached jupytext-1.16.1-py3-none-any.whl.metadata (12 kB)
Collecting nbconvert<8,>=7.2.9 (from mkdocs-jupyter>=0.24.1)
  Using cached nbconvert-7.15.0-py3-none-any.whl.metadata (7.7 kB)
Collecting pygments>2.12.0 (from mkdocs-jupyter>=0.24.1)
  Using cached pygments-2.17.2-py3-none-any.whl.metadata (2.6 kB)
Collecting pyyaml (from mkdocs-markdownextradata-plugin~=0.2)
  Using cached PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl.metadata (2.1 kB)
Collecting babel~=2.10 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached Babel-2.14.0-py3-none-any.whl.metadata (1.6 kB)
Collecting colorama~=0.4 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting markdown~=3.2 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached Markdown-3.5.2-py3-none-any.whl.metadata (7.0 kB)
Collecting mkdocs-material-extensions~=1.3 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached mkdocs_material_extensions-1.3.1-py3-none-any.whl.metadata (6.9 kB)
Collecting paginate~=0.5 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached paginate-0.5.6-py3-none-any.whl
Collecting pymdown-extensions~=10.2 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached pymdown_extensions-10.7-py3-none-any.whl.metadata (3.0 kB)
Collecting regex>=2022.4 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl.metadata (40 kB)
Collecting requests~=2.26 (from mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting cairosvg~=2.6 (from mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached CairoSVG-2.7.1-py3-none-any.whl.metadata (2.7 kB)
Collecting pillow~=10.2 (from mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl.metadata (9.7 kB)
Collecting click>=7.0 (from mkdocstrings~=0.22->mkdocstrings[python]~=0.22; extra == "dev")
  Using cached click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting mkdocs-autorefs>=0.3.1 (from mkdocstrings~=0.22->mkdocstrings[python]~=0.22; extra == "dev")
  Using cached mkdocs_autorefs-0.5.0-py3-none-any.whl.metadata (4.0 kB)
Collecting platformdirs>=2.2.0 (from mkdocstrings~=0.22->mkdocstrings[python]~=0.22; extra == "dev")
  Using cached platformdirs-4.2.0-py3-none-any.whl.metadata (11 kB)
Collecting mkdocstrings-python>=0.5.2 (from mkdocstrings[python]~=0.22; extra == "dev")
  Using cached mkdocstrings_python-1.8.0-py3-none-any.whl.metadata (5.8 kB)
Collecting distro<2,>=1.7.0 (from openai>=1.1.0)
  Using cached distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
Collecting tqdm>4 (from openai>=1.1.0)
  Using cached tqdm-4.66.1-py3-none-any.whl.metadata (57 kB)
Collecting fancycompleter>=0.8 (from pdbpp~=0.10)
  Using cached fancycompleter-0.9.1-py3-none-any.whl (9.7 kB)
Collecting wmctrl (from pdbpp~=0.10)
  Using cached wmctrl-0.5-py2.py3-none-any.whl.metadata (943 bytes)
Collecting cfgv>=2.0.0 (from pre-commit<4.0,>=2.21)
  Using cached cfgv-3.4.0-py2.py3-none-any.whl.metadata (8.5 kB)
Collecting identify>=1.0.0 (from pre-commit<4.0,>=2.21)
  Using cached identify-2.5.33-py2.py3-none-any.whl.metadata (4.4 kB)
Collecting nodeenv>=0.11.1 (from pre-commit<4.0,>=2.21)
  Using cached nodeenv-1.8.0-py2.py3-none-any.whl.metadata (21 kB)
Collecting virtualenv>=20.10.0 (from pre-commit<4.0,>=2.21)
  Using cached virtualenv-20.25.0-py3-none-any.whl.metadata (4.5 kB)
Collecting annotated-types>=0.4.0 (from pydantic>=2.4.2)
  Using cached annotated_types-0.6.0-py3-none-any.whl.metadata (12 kB)
Collecting pydantic-core==2.16.2 (from pydantic>=2.4.2)
  Using cached pydantic_core-2.16.2-cp311-cp311-macosx_10_12_x86_64.whl.metadata (6.5 kB)
Collecting markdown-it-py>=2.2.0 (from rich>=12)
  Using cached markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting mypy-extensions>=0.4.3 (from black[jupyter]; extra == "dev")
  Using cached mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)
Collecting packaging>=22.0 (from black[jupyter]; extra == "dev")
  Using cached packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting pathspec>=0.9.0 (from black[jupyter]; extra == "dev")
  Using cached pathspec-0.12.1-py3-none-any.whl.metadata (21 kB)
Collecting tokenize-rt>=3.2.0 (from black[jupyter]; extra == "dev")
  Using cached tokenize_rt-5.2.0-py2.py3-none-any.whl.metadata (4.1 kB)
Collecting decorator (from ipython)
  Using cached decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting jedi>=0.16 (from ipython)
  Using cached jedi-0.19.1-py2.py3-none-any.whl.metadata (22 kB)
Collecting matplotlib-inline (from ipython)
  Using cached matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting prompt-toolkit<3.1.0,>=3.0.41 (from ipython)
  Using cached prompt_toolkit-3.0.43-py3-none-any.whl.metadata (6.5 kB)
Collecting stack-data (from ipython)
  Using cached stack_data-0.6.3-py3-none-any.whl.metadata (18 kB)
Collecting traitlets>=5 (from ipython)
  Using cached traitlets-5.14.1-py3-none-any.whl.metadata (10 kB)
Collecting pexpect>4.3 (from ipython)
  Using cached pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting starlette<0.37.0,>=0.36.3 (from fastapi)
  Using cached starlette-0.36.3-py3-none-any.whl.metadata (5.9 kB)
Collecting pytest-asyncio!=0.22.0,<0.23.0,>=0.18.2 (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_asyncio-0.21.1-py3-none-any.whl.metadata (4.0 kB)
Collecting pytest-env<2.0,>=0.8 (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_env-1.1.3-py3-none-any.whl.metadata (5.3 kB)
Collecting pytest-rerunfailures<14,>=10 (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_rerunfailures-13.0-py3-none-any.whl.metadata (18 kB)
Collecting pytest-sugar<2.0,>=0.9 (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_sugar-1.0.0-py3-none-any.whl.metadata (4.4 kB)
Collecting pytest~=7.3.1 (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest-7.3.2-py3-none-any.whl.metadata (8.0 kB)
Collecting pytest-timeout (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_timeout-2.2.0-py3-none-any.whl.metadata (17 kB)
Collecting pytest-xdist (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_xdist-3.5.0-py3-none-any.whl.metadata (3.1 kB)
Collecting python-dotenv>=0.21.0 (from pydantic-settings)
  Using cached python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB)
WARNING: pydantic 2.6.1 does not provide the extra 'dotenv'
Collecting cairocffi (from cairosvg~=2.6->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached cairocffi-1.6.1-py3-none-any.whl.metadata (3.3 kB)
Collecting cssselect2 (from cairosvg~=2.6->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached cssselect2-0.7.0-py3-none-any.whl (15 kB)
Collecting defusedxml (from cairosvg~=2.6->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting tinycss2 (from cairosvg~=2.6->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached tinycss2-1.2.1-py3-none-any.whl (21 kB)
Collecting pyrepl>=0.8.2 (from fancycompleter>=0.8->pdbpp~=0.10)
  Using cached pyrepl-0.9.0-py3-none-any.whl
Collecting appnope (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached appnope-0.1.4-py2.py3-none-any.whl.metadata (908 bytes)
Collecting comm>=0.1.1 (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached comm-0.2.1-py3-none-any.whl.metadata (3.7 kB)
Collecting debugpy>=1.6.5 (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl.metadata (1.0 kB)
Collecting jupyter-client>=6.1.12 (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached jupyter_client-8.6.0-py3-none-any.whl.metadata (8.3 kB)
Collecting jupyter-core!=5.0.*,>=4.12 (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached jupyter_core-5.7.1-py3-none-any.whl.metadata (3.4 kB)
Collecting nest-asyncio (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached nest_asyncio-1.6.0-py3-none-any.whl.metadata (2.8 kB)
Collecting psutil (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl.metadata (21 kB)
Collecting pyzmq>=24 (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached pyzmq-25.1.2-cp311-cp311-macosx_10_15_universal2.whl.metadata (4.9 kB)
Collecting tornado>=6.1 (from ipykernel<7.0.0,>6.0.0->mkdocs-jupyter>=0.24.1)
  Using cached tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl.metadata (2.5 kB)
Collecting parso<0.9.0,>=0.8.3 (from jedi>=0.16->ipython)
  Using cached parso-0.8.3-py2.py3-none-any.whl (100 kB)
Collecting mdit-py-plugins (from jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached mdit_py_plugins-0.4.0-py3-none-any.whl.metadata (2.7 kB)
Collecting nbformat (from jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached nbformat-5.9.2-py3-none-any.whl.metadata (3.4 kB)
Collecting toml (from jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=12)
  Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Collecting ghp-import>=1.0 (from mkdocs>=1.2.3->mkdocs-autolinks-plugin~=0.7)
  Using cached ghp_import-2.1.0-py3-none-any.whl (11 kB)
Collecting mergedeep>=1.3.4 (from mkdocs>=1.2.3->mkdocs-autolinks-plugin~=0.7)
  Using cached mergedeep-1.3.4-py3-none-any.whl (6.4 kB)
Collecting pyyaml-env-tag>=0.1 (from mkdocs>=1.2.3->mkdocs-autolinks-plugin~=0.7)
  Using cached pyyaml_env_tag-0.1-py3-none-any.whl (3.9 kB)
Collecting watchdog>=2.0 (from mkdocs>=1.2.3->mkdocs-autolinks-plugin~=0.7)
  Using cached watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl (91 kB)
Collecting griffe>=0.37 (from mkdocstrings-python>=0.5.2->mkdocstrings[python]~=0.22; extra == "dev")
  Using cached griffe-0.40.0-py3-none-any.whl.metadata (6.2 kB)
Collecting beautifulsoup4 (from nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
Collecting bleach!=5.0.0 (from nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached bleach-6.1.0-py3-none-any.whl.metadata (30 kB)
Collecting jupyterlab-pygments (from nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached jupyterlab_pygments-0.3.0-py3-none-any.whl.metadata (4.4 kB)
Collecting mistune<4,>=2.0.3 (from nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached mistune-3.0.2-py3-none-any.whl.metadata (1.7 kB)
Collecting nbclient>=0.5.0 (from nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached nbclient-0.9.0-py3-none-any.whl.metadata (7.8 kB)
Collecting pandocfilters>=1.4.1 (from nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached pandocfilters-1.5.1-py2.py3-none-any.whl.metadata (9.0 kB)
Requirement already satisfied: setuptools in ./.venv/lib/python3.11/site-packages (from nodeenv>=0.11.1->pre-commit<4.0,>=2.21) (68.2.2)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython)
  Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth (from prompt-toolkit<3.1.0,>=3.0.41->ipython)
  Using cached wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Collecting iniconfig (from pytest~=7.3.1->marvin==2.1.4.dev24+ge712231f)
  Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting pluggy<2.0,>=0.12 (from pytest~=7.3.1->marvin==2.1.4.dev24+ge712231f)
  Using cached pluggy-1.4.0-py3-none-any.whl.metadata (4.3 kB)
INFO: pip is looking at multiple versions of pytest-env to determine which version is compatible with other requirements. This could take a while.
Collecting pytest-env<2.0,>=0.8 (from marvin==2.1.4.dev24+ge712231f)
  Using cached pytest_env-1.1.2-py3-none-any.whl.metadata (5.3 kB)
  Using cached pytest_env-1.1.1-py3-none-any.whl.metadata (5.3 kB)
  Using cached pytest_env-1.1.0-py3-none-any.whl.metadata (5.3 kB)
  Using cached pytest_env-1.0.1-py3-none-any.whl.metadata (4.5 kB)
Collecting termcolor>=2.1.0 (from pytest-sugar<2.0,>=0.9->marvin==2.1.4.dev24+ge712231f)
  Using cached termcolor-2.4.0-py3-none-any.whl.metadata (6.1 kB)
Collecting charset-normalizer<4,>=2 (from requests~=2.26->mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl.metadata (33 kB)
Collecting urllib3<3,>=1.21.1 (from requests~=2.26->mkdocs-material>=9.1.17->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached urllib3-2.2.0-py3-none-any.whl.metadata (6.4 kB)
Collecting distlib<1,>=0.3.7 (from virtualenv>=20.10.0->pre-commit<4.0,>=2.21)
  Using cached distlib-0.3.8-py2.py3-none-any.whl.metadata (5.1 kB)
Collecting filelock<4,>=3.12.2 (from virtualenv>=20.10.0->pre-commit<4.0,>=2.21)
  Using cached filelock-3.13.1-py3-none-any.whl.metadata (2.8 kB)
Collecting bracex>=2.1.1 (from wcmatch>=7->mkdocs-awesome-pages-plugin~=2.8)
  Using cached bracex-2.4-py3-none-any.whl.metadata (3.6 kB)
Collecting execnet>=1.1 (from pytest-xdist->marvin==2.1.4.dev24+ge712231f)
  Using cached execnet-2.0.2-py3-none-any.whl.metadata (2.9 kB)
Collecting executing>=1.2.0 (from stack-data->ipython)
  Using cached executing-2.0.1-py2.py3-none-any.whl.metadata (9.0 kB)
Collecting asttokens>=2.1.0 (from stack-data->ipython)
  Using cached asttokens-2.4.1-py2.py3-none-any.whl.metadata (5.2 kB)
Collecting pure-eval (from stack-data->ipython)
  Using cached pure_eval-0.2.2-py3-none-any.whl (11 kB)
Collecting attrs (from wmctrl->pdbpp~=0.10)
  Using cached attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting six>=1.12.0 (from asttokens>=2.1.0->stack-data->ipython)
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting webencodings (from bleach!=5.0.0->nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting python-dateutil>=2.8.1 (from ghp-import>=1.0->mkdocs>=1.2.3->mkdocs-autolinks-plugin~=0.7)
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting fastjsonschema (from nbformat->jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached fastjsonschema-2.19.1-py3-none-any.whl.metadata (2.1 kB)
Collecting jsonschema>=2.6 (from nbformat->jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached jsonschema-4.21.1-py3-none-any.whl.metadata (7.8 kB)
Collecting soupsieve>1.2 (from beautifulsoup4->nbconvert<8,>=7.2.9->mkdocs-jupyter>=0.24.1)
  Using cached soupsieve-2.5-py3-none-any.whl.metadata (4.7 kB)
Collecting cffi>=1.1.0 (from cairocffi->cairosvg~=2.6->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl.metadata (1.5 kB)
Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg~=2.6->mkdocs-material[imaging]>=9.1.17; extra == "dev")
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=2.6->nbformat->jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl.metadata (3.0 kB)
Collecting referencing>=0.28.4 (from jsonschema>=2.6->nbformat->jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached referencing-0.33.0-py3-none-any.whl.metadata (2.7 kB)
Collecting rpds-py>=0.7.1 (from jsonschema>=2.6->nbformat->jupytext<2,>1.13.8->mkdocs-jupyter>=0.24.1)
  Using cached rpds_py-0.17.1-cp311-cp311-macosx_10_12_x86_64.whl.metadata (4.1 kB)
Using cached cachetools-5.3.2-py3-none-any.whl (9.3 kB)
Using cached httpx-0.26.0-py3-none-any.whl (75 kB)
Using cached httpcore-1.0.2-py3-none-any.whl (76 kB)
Using cached Jinja2-3.1.3-py3-none-any.whl (133 kB)
Using cached jsonpatch-1.33-py2.py3-none-any.whl (12 kB)
Using cached mkdocs_autolinks_plugin-0.7.1-py3-none-any.whl (4.2 kB)
Using cached mkdocs_awesome_pages_plugin-2.9.2-py3-none-any.whl (14 kB)
Using cached mkdocs_jupyter-0.24.6-py3-none-any.whl (2.1 MB)
Using cached mkdocs_material-9.5.7-py3-none-any.whl (8.7 MB)
Using cached mkdocstrings-0.24.0-py3-none-any.whl (28 kB)
Using cached openai-1.11.1-py3-none-any.whl (226 kB)
Using cached pre_commit-3.6.0-py2.py3-none-any.whl (204 kB)
Using cached pydantic-2.6.1-py3-none-any.whl (394 kB)
Using cached pydantic_core-2.16.2-cp311-cp311-macosx_10_12_x86_64.whl (1.9 MB)
Using cached rich-13.7.0-py3-none-any.whl (240 kB)
Using cached tiktoken-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl (1.0 MB)
Using cached typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Using cached tzdata-2023.4-py2.py3-none-any.whl (346 kB)
Using cached uvicorn-0.27.0.post1-py3-none-any.whl (60 kB)
Using cached ipython-8.21.0-py3-none-any.whl (810 kB)
Using cached fastapi-0.109.2-py3-none-any.whl (92 kB)
Using cached pydantic_settings-2.1.0-py3-none-any.whl (11 kB)
Using cached ruff-0.2.1-py3-none-macosx_10_12_x86_64.whl (7.4 MB)
Using cached annotated_types-0.6.0-py3-none-any.whl (12 kB)
Using cached anyio-4.2.0-py3-none-any.whl (85 kB)
Using cached Babel-2.14.0-py3-none-any.whl (11.0 MB)
Using cached CairoSVG-2.7.1-py3-none-any.whl (43 kB)
Using cached cfgv-3.4.0-py2.py3-none-any.whl (7.2 kB)
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Using cached distro-1.9.0-py3-none-any.whl (20 kB)
Using cached identify-2.5.33-py2.py3-none-any.whl (98 kB)
Using cached idna-3.6-py3-none-any.whl (61 kB)
Using cached ipykernel-6.29.1-py3-none-any.whl (116 kB)
Using cached jedi-0.19.1-py2.py3-none-any.whl (1.6 MB)
Using cached jsonpointer-2.4-py2.py3-none-any.whl (7.8 kB)
Using cached jupytext-1.16.1-py3-none-any.whl (152 kB)
Using cached Markdown-3.5.2-py3-none-any.whl (103 kB)
Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
Using cached MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl (14 kB)
Using cached mkdocs-1.5.3-py3-none-any.whl (3.7 MB)
Using cached mkdocs_autorefs-0.5.0-py3-none-any.whl (9.6 kB)
Using cached mkdocs_material_extensions-1.3.1-py3-none-any.whl (8.7 kB)
Using cached mkdocstrings_python-1.8.0-py3-none-any.whl (58 kB)
Using cached natsort-8.4.0-py3-none-any.whl (38 kB)
Using cached nbconvert-7.15.0-py3-none-any.whl (257 kB)
Using cached nodeenv-1.8.0-py2.py3-none-any.whl (22 kB)
Using cached packaging-23.2-py3-none-any.whl (53 kB)
Using cached pathspec-0.12.1-py3-none-any.whl (31 kB)
Using cached pexpect-4.9.0-py2.py3-none-any.whl (63 kB)
Using cached pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl (3.5 MB)
Using cached platformdirs-4.2.0-py3-none-any.whl (17 kB)
Using cached prompt_toolkit-3.0.43-py3-none-any.whl (386 kB)
Using cached pygments-2.17.2-py3-none-any.whl (1.2 MB)
Using cached pymdown_extensions-10.7-py3-none-any.whl (250 kB)
Using cached pytest-7.3.2-py3-none-any.whl (320 kB)
Using cached pytest_asyncio-0.21.1-py3-none-any.whl (13 kB)
Using cached pytest_env-1.0.1-py3-none-any.whl (5.3 kB)
Using cached pytest_rerunfailures-13.0-py3-none-any.whl (12 kB)
Using cached pytest_sugar-1.0.0-py3-none-any.whl (10 kB)
Using cached python_dotenv-1.0.1-py3-none-any.whl (19 kB)
Using cached PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl (187 kB)
Using cached regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl (296 kB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached starlette-0.36.3-py3-none-any.whl (71 kB)
Using cached tokenize_rt-5.2.0-py2.py3-none-any.whl (5.8 kB)
Using cached tqdm-4.66.1-py3-none-any.whl (78 kB)
Using cached traitlets-5.14.1-py3-none-any.whl (85 kB)
Using cached virtualenv-20.25.0-py3-none-any.whl (3.8 MB)
Using cached wcmatch-8.5-py3-none-any.whl (39 kB)
Using cached black-24.1.1-cp311-cp311-macosx_10_9_x86_64.whl (1.5 MB)
Using cached pytest_timeout-2.2.0-py3-none-any.whl (13 kB)
Using cached pytest_xdist-3.5.0-py3-none-any.whl (42 kB)
Using cached stack_data-0.6.3-py3-none-any.whl (24 kB)
Using cached wmctrl-0.5-py2.py3-none-any.whl (4.3 kB)
Using cached asttokens-2.4.1-py2.py3-none-any.whl (27 kB)
Using cached bleach-6.1.0-py3-none-any.whl (162 kB)
Using cached bracex-2.4-py3-none-any.whl (11 kB)
Using cached charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl (121 kB)
Using cached comm-0.2.1-py3-none-any.whl (7.2 kB)
Using cached debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl (2.1 MB)
Using cached distlib-0.3.8-py2.py3-none-any.whl (468 kB)
Using cached execnet-2.0.2-py3-none-any.whl (37 kB)
Using cached executing-2.0.1-py2.py3-none-any.whl (24 kB)
Using cached filelock-3.13.1-py3-none-any.whl (11 kB)
Using cached griffe-0.40.0-py3-none-any.whl (1.1 MB)
Using cached jupyter_client-8.6.0-py3-none-any.whl (105 kB)
Using cached jupyter_core-5.7.1-py3-none-any.whl (28 kB)
Using cached mistune-3.0.2-py3-none-any.whl (47 kB)
Using cached nbclient-0.9.0-py3-none-any.whl (24 kB)
Using cached nbformat-5.9.2-py3-none-any.whl (77 kB)
Using cached pandocfilters-1.5.1-py2.py3-none-any.whl (8.7 kB)
Using cached pluggy-1.4.0-py3-none-any.whl (20 kB)
Using cached pyzmq-25.1.2-cp311-cp311-macosx_10_15_universal2.whl (1.9 MB)
Using cached termcolor-2.4.0-py3-none-any.whl (7.7 kB)
Using cached tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl (431 kB)
Using cached urllib3-2.2.0-py3-none-any.whl (120 kB)
Using cached appnope-0.1.4-py2.py3-none-any.whl (4.3 kB)
Using cached attrs-23.2.0-py3-none-any.whl (60 kB)
Using cached beautifulsoup4-4.12.3-py3-none-any.whl (147 kB)
Using cached cairocffi-1.6.1-py3-none-any.whl (75 kB)
Using cached jupyterlab_pygments-0.3.0-py3-none-any.whl (15 kB)
Using cached mdit_py_plugins-0.4.0-py3-none-any.whl (54 kB)
Using cached nest_asyncio-1.6.0-py3-none-any.whl (5.2 kB)
Using cached psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl (248 kB)
Using cached wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
Using cached cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl (182 kB)
Using cached jsonschema-4.21.1-py3-none-any.whl (85 kB)
Using cached soupsieve-2.5-py3-none-any.whl (36 kB)
Using cached fastjsonschema-2.19.1-py3-none-any.whl (23 kB)
Using cached jsonschema_specifications-2023.12.1-py3-none-any.whl (18 kB)
Using cached referencing-0.33.0-py3-none-any.whl (26 kB)
Using cached rpds_py-0.17.1-cp311-cp311-macosx_10_12_x86_64.whl (353 kB)
Checking if build backend supports build_editable ... done
Building wheels for collected packages: marvin
  Building editable for marvin (pyproject.toml) ... done
  Created wheel for marvin: filename=marvin-2.1.4.dev24+ge712231f-0.editable-py3-none-any.whl size=13550 sha256=c1d4274085fa093037bea32cef57883d9d262135fe5b2c2423b85cf137deca36
  Stored in directory: /private/var/folders/99/f5lp2vnj7mzf9rf4_p501qm80000gp/T/pip-ephem-wheel-cache-k52qmgv5/wheels/41/cd/ad/6d2e0ef6c3b1f54f97f59191cad438f8f91f7256c95c495d72
Successfully built marvin
Installing collected packages: webencodings, wcwidth, pyrepl, pure-eval, ptyprocess, paginate, fastjsonschema, distlib, watchdog, urllib3, tzdata, typing-extensions, traitlets, tqdm, tornado, toml, tokenize-rt, tinycss2, termcolor, soupsieve, sniffio, six, ruff, rpds-py, regex, pyzmq, pyyaml, python-dotenv, pygments, pycparser, psutil, prompt-toolkit, pluggy, platformdirs, pillow, pexpect, pathspec, parso, pandocfilters, packaging, nodeenv, nest-asyncio, natsort, mypy-extensions, mkdocs-material-extensions, mistune, mergedeep, mdurl, MarkupSafe, markdown, jupyterlab-pygments, jsonpointer, iniconfig, idna, identify, h11, filelock, fancycompleter, executing, execnet, distro, defusedxml, decorator, debugpy, colorama, click, charset-normalizer, cfgv, certifi, cachetools, bracex, babel, attrs, appnope, annotated-types, wmctrl, wcmatch, virtualenv, uvicorn, typer, requests, referencing, pyyaml-env-tag, python-dateutil, pytest, pymdown-extensions, pydantic-core, matplotlib-inline, markdown-it-py, jupyter-core, jsonpatch, jinja2, jedi, httpcore, griffe, cssselect2, comm, cffi, bleach, black, beautifulsoup4, asttokens, anyio, tiktoken, starlette, stack-data, rich, pytest-xdist, pytest-timeout, pytest-sugar, pytest-rerunfailures, pytest-env, pytest-asyncio, pydantic, pre-commit, pdbpp, mdit-py-plugins, jupyter-client, jsonschema-specifications, httpx, ghp-import, cairocffi, pydantic-settings, openai, mkdocs, jsonschema, ipython, fastapi, cairosvg, nbformat, mkdocs-material, mkdocs-markdownextradata-plugin, mkdocs-awesome-pages-plugin, mkdocs-autorefs, mkdocs-autolinks-plugin, marvin, ipykernel, nbclient, mkdocstrings, jupytext, nbconvert, mkdocstrings-python, mkdocs-jupyter
Successfully installed MarkupSafe-2.1.5 annotated-types-0.6.0 anyio-4.2.0 appnope-0.1.4 asttokens-2.4.1 attrs-23.2.0 babel-2.14.0 beautifulsoup4-4.12.3 black-24.1.1 bleach-6.1.0 bracex-2.4 cachetools-5.3.2 cairocffi-1.6.1 cairosvg-2.7.1 certifi-2024.2.2 cffi-1.16.0 cfgv-3.4.0 charset-normalizer-3.3.2 click-8.1.7 colorama-0.4.6 comm-0.2.1 cssselect2-0.7.0 debugpy-1.8.0 decorator-5.1.1 defusedxml-0.7.1 distlib-0.3.8 distro-1.9.0 execnet-2.0.2 executing-2.0.1 fancycompleter-0.9.1 fastapi-0.109.2 fastjsonschema-2.19.1 filelock-3.13.1 ghp-import-2.1.0 griffe-0.40.0 h11-0.14.0 httpcore-1.0.2 httpx-0.26.0 identify-2.5.33 idna-3.6 iniconfig-2.0.0 ipykernel-6.29.1 ipython-8.21.0 jedi-0.19.1 jinja2-3.1.3 jsonpatch-1.33 jsonpointer-2.4 jsonschema-4.21.1 jsonschema-specifications-2023.12.1 jupyter-client-8.6.0 jupyter-core-5.7.1 jupyterlab-pygments-0.3.0 jupytext-1.16.1 markdown-3.5.2 markdown-it-py-3.0.0 marvin-2.1.4.dev24+ge712231f matplotlib-inline-0.1.6 mdit-py-plugins-0.4.0 mdurl-0.1.2 mergedeep-1.3.4 mistune-3.0.2 mkdocs-1.5.3 mkdocs-autolinks-plugin-0.7.1 mkdocs-autorefs-0.5.0 mkdocs-awesome-pages-plugin-2.9.2 mkdocs-jupyter-0.24.6 mkdocs-markdownextradata-plugin-0.2.5 mkdocs-material-9.5.7 mkdocs-material-extensions-1.3.1 mkdocstrings-0.24.0 mkdocstrings-python-1.8.0 mypy-extensions-1.0.0 natsort-8.4.0 nbclient-0.9.0 nbconvert-7.15.0 nbformat-5.9.2 nest-asyncio-1.6.0 nodeenv-1.8.0 openai-1.11.1 packaging-23.2 paginate-0.5.6 pandocfilters-1.5.1 parso-0.8.3 pathspec-0.12.1 pdbpp-0.10.3 pexpect-4.9.0 pillow-10.2.0 platformdirs-4.2.0 pluggy-1.4.0 pre-commit-3.6.0 prompt-toolkit-3.0.43 psutil-5.9.8 ptyprocess-0.7.0 pure-eval-0.2.2 pycparser-2.21 pydantic-2.6.1 pydantic-core-2.16.2 pydantic-settings-2.1.0 pygments-2.17.2 pymdown-extensions-10.7 pyrepl-0.9.0 pytest-7.3.2 pytest-asyncio-0.21.1 pytest-env-1.0.1 pytest-rerunfailures-13.0 pytest-sugar-1.0.0 pytest-timeout-2.2.0 pytest-xdist-3.5.0 python-dateutil-2.8.2 python-dotenv-1.0.1 pyyaml-6.0.1 pyyaml-env-tag-0.1 pyzmq-25.1.2 referencing-0.33.0 regex-2023.12.25 requests-2.31.0 rich-13.7.0 rpds-py-0.17.1 ruff-0.2.1 six-1.16.0 sniffio-1.3.0 soupsieve-2.5 stack-data-0.6.3 starlette-0.36.3 termcolor-2.4.0 tiktoken-0.5.2 tinycss2-1.2.1 tokenize-rt-5.2.0 toml-0.10.2 tornado-6.4 tqdm-4.66.1 traitlets-5.14.1 typer-0.9.0 typing-extensions-4.9.0 tzdata-2023.4 urllib3-2.2.0 uvicorn-0.27.0.post1 virtualenv-20.25.0 watchdog-3.0.0 wcmatch-8.5 wcwidth-0.2.13 webencodings-0.5.1 wmctrl-0.5

[notice] A new release of pip is available: 23.3.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
(.venv) ➜  marvin git:(main) ✗ pre-commit install
pre-commit installed at .git/hooks/pre-commit
(.venv) ➜  marvin git:(main) ✗ pip install --upgrade pip
Requirement already satisfied: pip in ./.venv/lib/python3.11/site-packages (23.3.1)
Collecting pip
  Using cached pip-24.0-py3-none-any.whl.metadata (3.6 kB)
Using cached pip-24.0-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.3.1
    Uninstalling pip-23.3.1:
      Successfully uninstalled pip-23.3.1
Successfully installed pip-24.0

(.venv) ➜  marvin git:(main) ✗ pytest -vv -m no_llm

Error

(.venv) ➜  marvin git:(main) ✗ pytest -vv -m no_llm
ImportError while loading conftest '/Users/juanpedrosugg/dev/marvin/tests/conftest.py'.
tests/conftest.py:8: in <module>
    from .fixtures import *
tests/fixtures/__init__.py:1: in <module>
    from .llms import *
tests/fixtures/llms.py:2: in <module>
    from marvin.settings import temporary_settings
src/marvin/__init__.py:3: in <module>
    from .ai.text import (
src/marvin/ai/__init__.py:3: in <module>
    from . import text
src/marvin/ai/text.py:25: in <module>
    import marvin.utilities.tools
src/marvin/utilities/tools.py:66: in <module>
    def tool_from_type(type_: U, tool_name: str = None) -> Tool[U]:
/usr/local/lib/python3.10/site-packages/pydantic/main.py:679: in __class_getitem__
    submodel = _generics.create_generic_submodel(model_name, origin, args, params)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py:142: in create_generic_submodel
    created_model = meta(
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py:183: in __new__
    set_model_fields(cls, bases, config_wrapper, types_namespace)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py:418: in set_model_fields
    fields, class_vars = collect_model_fields(cls, bases, config_wrapper, types_namespace, typevars_map=typevars_map)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_fields.py:209: in collect_model_fields
    field.apply_typevars_map(typevars_map, types_namespace)
/usr/local/lib/python3.10/site-packages/pydantic/fields.py:552: in apply_typevars_map
    self.annotation = _generics.replace_types(annotation, typevars_map)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py:294: in replace_types
    resolved_type_args = tuple(replace_types(arg, type_map) for arg in type_args)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py:294: in <genexpr>
    resolved_type_args = tuple(replace_types(arg, type_map) for arg in type_args)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py:326: in replace_types
    return type_[resolved_type_args]
/usr/local/lib/python3.10/site-packages/pydantic/main.py:679: in __class_getitem__
    submodel = _generics.create_generic_submodel(model_name, origin, args, params)
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py:142: in create_generic_submodel
    created_model = meta(
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py:184: in __new__
    complete_model_class(
/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py:499: in complete_model_class
    cls.__pydantic_validator__ = create_schema_validator(schema, core_config, config_wrapper.plugin_settings)
/usr/local/lib/python3.10/site-packages/pydantic/plugin/_schema_validator.py:34: in create_schema_validator
    return SchemaValidator(schema, config)
E   pydantic_core._pydantic_core.SchemaError: Error building "model" validator:
E     SchemaError: Error building "model-fields" validator:
E     SchemaError: Field "model":
E     SchemaError: Error building "default" validator:
E     SchemaError: Error building "nullable" validator:
E     SchemaError: Error building "is-subclass" validator:
E     TypeError: '_UnionGenericAlias' object cannot be converted to 'PyType'
(.venv) ➜  marvin git:(main) ✗ pip install -e dotenv
ERROR: dotenv is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).

(.venv) ➜  marvin git:(main) ✗ pip install dotenv
Collecting dotenv
  Downloading dotenv-0.0.5.tar.gz (2.4 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... error
  error: subprocess-exited-with-error

  × pip subprocess to install backend dependencies did not run successfully.
  │ exit code: 1
  ╰─> [32 lines of output]
      Collecting distribute
        Downloading distribute-0.7.3.zip (145 kB)
           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 145.4/145.4 kB 3.4 MB/s eta 0:00:00
        Installing build dependencies: started
        Installing build dependencies: finished with status 'done'
        Getting requirements to build wheel: started
        Getting requirements to build wheel: finished with status 'done'
        Installing backend dependencies: started
        Installing backend dependencies: finished with status 'done'
        Preparing metadata (pyproject.toml): started
        Preparing metadata (pyproject.toml): finished with status 'error'
        error: subprocess-exited-with-error

        × Preparing metadata (pyproject.toml) did not run successfully.
        │ exit code: 1
        ╰─> [6 lines of output]
            usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
               or: setup.py --help [cmd1 cmd2 ...]
               or: setup.py --help-commands
               or: setup.py cmd --help

            error: invalid command 'dist_info'
            [end of output]

        note: This error originates from a subprocess, and is likely not a problem with pip.
      error: metadata-generation-failed

      × Encountered error while generating package metadata.
      ╰─> See above for output.

      note: This is an issue with the package mentioned above, not pip.
      hint: See above for details.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install backend dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Versions

(.venv) ➜  marvin git:(main) ✗ marvin version
Traceback (most recent call last):
  File "/usr/local/bin/marvin", line 5, in <module>
    from marvin.cli import app
  File "/Users/juanpedrosugg/dev/marvin/src/marvin/__init__.py", line 3, in <module>
    from .ai.text import (
  File "/Users/juanpedrosugg/dev/marvin/src/marvin/ai/__init__.py", line 3, in <module>
    from . import text
  File "/Users/juanpedrosugg/dev/marvin/src/marvin/ai/text.py", line 25, in <module>
    import marvin.utilities.tools
  File "/Users/juanpedrosugg/dev/marvin/src/marvin/utilities/tools.py", line 66, in <module>
    def tool_from_type(type_: U, tool_name: str = None) -> Tool[U]:
  File "/usr/local/lib/python3.10/site-packages/pydantic/main.py", line 679, in __class_getitem__
    submodel = _generics.create_generic_submodel(model_name, origin, args, params)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py", line 142, in create_generic_submodel
    created_model = meta(
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 183, in __new__
    set_model_fields(cls, bases, config_wrapper, types_namespace)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 418, in set_model_fields
    fields, class_vars = collect_model_fields(cls, bases, config_wrapper, types_namespace, typevars_map=typevars_map)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_fields.py", line 209, in collect_model_fields
    field.apply_typevars_map(typevars_map, types_namespace)
  File "/usr/local/lib/python3.10/site-packages/pydantic/fields.py", line 552, in apply_typevars_map
    self.annotation = _generics.replace_types(annotation, typevars_map)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py", line 294, in replace_types
    resolved_type_args = tuple(replace_types(arg, type_map) for arg in type_args)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py", line 294, in <genexpr>
    resolved_type_args = tuple(replace_types(arg, type_map) for arg in type_args)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py", line 326, in replace_types
    return type_[resolved_type_args]
  File "/usr/local/lib/python3.10/site-packages/pydantic/main.py", line 679, in __class_getitem__
    submodel = _generics.create_generic_submodel(model_name, origin, args, params)
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_generics.py", line 142, in create_generic_submodel
    created_model = meta(
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 184, in __new__
    complete_model_class(
  File "/usr/local/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py", line 499, in complete_model_class
    cls.__pydantic_validator__ = create_schema_validator(schema, core_config, config_wrapper.plugin_settings)
  File "/usr/local/lib/python3.10/site-packages/pydantic/plugin/_schema_validator.py", line 34, in create_schema_validator
    return SchemaValidator(schema, config)
pydantic_core._pydantic_core.SchemaError: Error building "model" validator:
  SchemaError: Error building "model-fields" validator:
  SchemaError: Field "model":
  SchemaError: Error building "default" validator:
  SchemaError: Error building "nullable" validator:
  SchemaError: Error building "is-subclass" validator:
  TypeError: '_UnionGenericAlias' object cannot be converted to 'PyType'

Additional context

(.venv) ➜  marvin git:(main) ✗ pip --version
pip 24.0 from /Users/juanpedrosugg/dev/marvin/.venv/lib/python3.11/site-packages/pip (python 3.11)
(.venv) ➜  marvin git:(main) ✗ python --version
Python 3.11.6
jsugg commented 7 months ago

BTW, I tried again creating the virtual environment but this time using Pipenv, and worked. That should help pinpoint the error

melvinmt commented 5 months ago

I was experiencing the same issue and even Pipenv didn't work. It only started working when I started using these pydantic versions:

pydantic==2.6.3
pydantic-settings==2.2.1
pydantic_core==2.16.3