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

Support Windows. Help wanted 🙏🪟 #179

Open
1 of 8 tasks
kantord opened this issue Sep 7, 2023 · 13 comments
Open
1 of 8 tasks

Support Windows. Help wanted 🙏🪟 #179

kantord opened this issue Sep 7, 2023 · 13 comments
Labels
help wanted Extra attention is needed up for grabs

Comments

@kantord
Copy link
Owner

kantord commented Sep 7, 2023

At all steps, SeaGOAT is developed with the intention of guaranteeing Windows support. That being said, as I don't have a Windows device and I don't have expertise regarding Windows development workflows, I have not been able to verify that it works properly on Windows.

The main goal is to support WSL, but supporting Windows natively is also a goal if it's possible!

Help wanted!

Here is a rough checklist of the current status of Windows support:

  • Enable CI checks for Windows
  • Enable tests for WSL if it's possible and necessary with GitHub actions
  • Make sure that all CI tests pass for Windows
  • Manually test SeaGOAT on Windows
  • Document installation steps on Windows
  • Make sure that any required Windows-specific features are implemented
  • Ensure it's easy to install on Windows using common tools
  • Currently, the main problem is that I have not been able to try and run SeaGOAT manually on Windows.

Also, I have discovered that some of the tests are failing on Windows. So, I created a CI file specifically for Windows that only checks some of the tests that are passing without issue:

- name: Run pytest
run: |
poetry run pytest tests/test_repository.py -vvs --timeout=60

For comparison, the Linux tests look like this:

- name: Run pytest
run: |
poetry run pytest . -vvs --timeout=60

@kantord kantord added help wanted Extra attention is needed up for grabs labels Sep 7, 2023
@DeveloperPaul123
Copy link

I'm trying this out on a decently sized project and starting the server takes a long time. It seems that my computer's resources, however, are not being fully utilized. It might be good to look into maximizing CPU usage while the server is indexing the repo. Also, being able to exclude certain folders inside the repo folder would also be nice.

@kantord
Copy link
Owner Author

kantord commented Sep 20, 2023

Reference in n

You are able to query the repo while it's being indexed, and the most useful files are being prioritized for indexing. For this reason the intended use case is to allow you to work normally on your computer while the repo is being indexed, which is why CPU utilization is not being maximized. However maybe it would make sense to allow the user to customize this behavior

@DeveloperPaul123
Copy link

DeveloperPaul123 commented Sep 20, 2023

Thanks for the tip, seems like a reasonable design choice.

Edit: I'm dumb, I installed ripgrepy via pip, not ripgrep via chocolatey


When I try to query, I'm getting an error however. It seems to think that I don't have ripgrep installed though I've ensured that I do.

2023-09-20 10:51:49,040 Handling task: query
Exception in thread Thread-1 (_worker_function):
Traceback (most recent call last):
  File "C:\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "C:\Python311\Lib\threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\queue\base_queue.py", line 79, in _worker_function
    self._handle_task(context, task)
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\queue\base_queue.py", line 66, in _handle_task
    result = handler(context, *task.args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\queue\task_queue.py", line 78, in handle_query
    context["seagoat_engine"].fetch_sync(
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\engine.py", line 163, in fetch_sync
    loop.run_until_complete(self.fetch(*args, **kwargs))
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\nest_asyncio.py", line 99, in run_until_complete
    return f.result()
           ^^^^^^^^^^
  File "C:\Python311\Lib\asyncio\futures.py", line 203, in result
    raise self._exception.with_traceback(self._exception_tb)
  File "C:\Python311\Lib\asyncio\tasks.py", line 269, in __step
    result = coro.throw(exc)
             ^^^^^^^^^^^^^^^
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\engine.py", line 149, in fetch
    results = await asyncio.gather(*async_tasks)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\asyncio\tasks.py", line 339, in __wakeup
    future.result()
  File "C:\Python311\Lib\concurrent\futures\thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\sources\ripgrep.py", line 45, in fetch
    return _fetch(query_text, str(path), limit)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\sources\ripgrep.py", line 16, in _fetch
    Ripgrepy(query_text, path)
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\ripgrepy\__init__.py", line 131, in __init__
    raise RipGrepNotFound("ripgrep not found")
ripgrepy.RipGrepNotFound: ripgrep not found

Output from pip list

image

Is there something I'm doing wrong?

@DeveloperPaul123
Copy link

DeveloperPaul123 commented Sep 20, 2023

Now that I've resolved the ripgrep issue 😅 , I'm getting another error

Exception in thread Thread-1 (_worker_function):
Traceback (most recent call last):
  File "C:\Python311\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "C:\Python311\Lib\threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\queue\base_queue.py", line 79, in _worker_function
    self._handle_task(context, task)
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\queue\base_queue.py", line 66, in _handle_task
    result = handler(context, *task.args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\queue\task_queue.py", line 83, in handle_query
    results = context["seagoat_engine"].get_results(kwargs["limit_clue"])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\engine.py", line 208, in get_results
    sorted(
  File "C:\Users\Paul\.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\engine.py", line 212, in <lambda>
    + 0.3 * normalize_file_position(top_files[x.path])
                                    ~~~~~~~~~^^^^^^^^
KeyError: '<redacted>'

@GautierT
Copy link

GautierT commented Sep 21, 2023

@DeveloperPaul123 : it's because the file path in top_files is in linux format.

Temp fix :
Replace top_files[x.path] by top_files[Path(x.path).as_posix()] in engine.py (C:\Users\XXXXXX.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\engine.py)

@kantord
Copy link
Owner Author

kantord commented Sep 21, 2023

Now that I've resolved the ripgrep issue 😅 , I'm getting another error

Out of curiosity, how did you resolve the ripgrep issue? I was thinking that if it wasn't detecting your ripgrep installation originally, it might be a bug in ripgrepy itself: https://github.com/securisec/ripgrepy maybe we could help them fix the problem or at least submit an issue there.

Also if you used a specific workaround we could mention that in the readme of SeaGOAT

@kantord
Copy link
Owner Author

kantord commented Sep 21, 2023

@DeveloperPaul123 : it's because the file path in top_files is in linux format.

Temp fix : Replace top_files[x.path] by top_files[Path(x.path).as_posix()] in engine.py (C:\Users\XXXXXX.local\pipx\venvs\seagoat\Lib\site-packages\seagoat\engine.py)

ok, actually we have something similar here:

def normalize_repo_path(repo_path: str) -> str:
return str(os.path.normpath(Path(repo_path).expanduser().resolve()))

we can probably reuse that

@DeveloperPaul123
Copy link

Now that I've resolved the ripgrep issue 😅 , I'm getting another error

Out of curiosity, how did you resolve the ripgrep issue? I was thinking that if it wasn't detecting your ripgrep installation originally, it might be a bug in ripgrepy itself: https://github.com/securisec/ripgrepy maybe we could help them fix the problem or at least submit an issue there.

Also if you used a specific workaround we could mention that in the readme of SeaGOAT

I just installed ripgrep via chocolatey as I didn't have it installed previously. Maybe I missed something, but I didn't realize that ripgrep was another command line tool that I needed to install along with SeaGOAT. I had installed ripgrepy via pip, but didn't have ripgrep available. It seems that ripgrepy assumes you have ripgrep installed and that it is available on your path.

@kantord
Copy link
Owner Author

kantord commented Sep 23, 2023

I have merged this, now with the latest version of SeaGOAT, the path-related error should not happen on Windows. If either of you can try it, please confirm if it works or not 🙏 #234

@DeveloperPaul123
Copy link

@kantord Thanks for the the fixes, things seem to be working correctly now!

@kantord
Copy link
Owner Author

kantord commented Sep 25, 2023

@kantord Thanks for the the fixes, things seem to be working correctly now!

amazing! let me know if you encounter other problems. also please let me know about your use cases and whether or not you find that the results are useful for your use cases.

@DeveloperPaul123
Copy link

@kantord Thanks for the the fixes, things seem to be working correctly now!

amazing! let me know if you encounter other problems. also please let me know about your use cases and whether or not you find that the results are useful for your use cases.

Will do thanks!

As for my use case, I occasionally use it to find code in my projects. I may use it in the future to help me replace code blocks or explore legacy code bases.

@Slach
Copy link

Slach commented Nov 24, 2024

Can't install latest version seagoat on windows with python 3.12 because have dependency conflicts, how to resolve it?

pip3.exe install -U seagoat
Collecting seagoat
  Using cached seagoat-0.36.2-py3-none-any.whl.metadata (9.7 kB)
Collecting appdirs<2.0.0,>=1.4.4 (from seagoat)
  Using cached appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)
Collecting blessed<2.0.0,>=1.20.0 (from seagoat)
  Using cached blessed-1.20.0-py2.py3-none-any.whl.metadata (13 kB)
Collecting chardet<6.0.0,>=5.2.0 (from seagoat)
  Using cached chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
Collecting chromadb<0.5.0,>=0.4.0 (from seagoat)
  Using cached chromadb-0.4.24-py3-none-any.whl.metadata (7.3 kB)
Requirement already satisfied: click<9.0.0,>=8.1.3 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from seagoat) (8.1.7)
Collecting deepmerge<2.0.0,>=1.1.0 (from seagoat)
  Using cached deepmerge-1.1.1-py3-none-any.whl.metadata (1.9 kB)
Collecting flask<4.0.0,>=3.0.0 (from seagoat)
  Using cached flask-3.1.0-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: gitpython<4.0.0,>=3.1.31 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from seagoat) (3.1.43)
Collecting jsonschema<5.0.0,>=4.19.1 (from seagoat)
  Using cached jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB)
Collecting nest-asyncio<2.0.0,>=1.5.6 (from seagoat)
  Using cached nest_asyncio-1.6.0-py3-none-any.whl.metadata (2.8 kB)
Collecting orjson<4.0.0,>=3.9.5 (from seagoat)
  Using cached orjson-3.10.12-cp313-none-win_amd64.whl.metadata (42 kB)
Collecting prompt-toolkit<4.0.0,>=3.0.38 (from seagoat)
  Using cached prompt_toolkit-3.0.48-py3-none-any.whl.metadata (6.4 kB)
Collecting psutil<6.0.0,>=5.9.5 (from seagoat)
  Using cached psutil-5.9.8-cp37-abi3-win_amd64.whl.metadata (22 kB)
Requirement already satisfied: pygments<3.0.0,>=2.15.1 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from seagoat) (2.18.0)
Requirement already satisfied: pyyaml<7.0.0,>=6.0.1 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from seagoat) (6.0.1)
Requirement already satisfied: requests<3.0.0,>=2.31.0 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from seagoat) (2.32.3)
Collecting setuptools<69.0.0,>=68.0.0 (from seagoat)
  Using cached setuptools-68.2.2-py3-none-any.whl.metadata (6.3 kB)
Requirement already satisfied: tqdm<5.0.0,>=4.65.0 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from seagoat) (4.66.4)
Collecting waitress<3.0.0,>=2.1.2 (from seagoat)
  Using cached waitress-2.1.2-py3-none-any.whl.metadata (7.0 kB)
Collecting wcwidth>=0.1.4 (from blessed<2.0.0,>=1.20.0->seagoat)
  Using cached wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Requirement already satisfied: six>=1.9.0 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from blessed<2.0.0,>=1.20.0->seagoat) (1.16.0)
Collecting jinxed>=1.1.0 (from blessed<2.0.0,>=1.20.0->seagoat)
  Using cached jinxed-1.3.0-py2.py3-none-any.whl.metadata (4.7 kB)
Collecting build>=1.0.3 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached build-1.2.2.post1-py3-none-any.whl.metadata (6.5 kB)
Requirement already satisfied: pydantic>=1.9 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from chromadb<0.5.0,>=0.4.0->seagoat) (2.8.2)
Collecting chroma-hnswlib==0.7.3 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached chroma-hnswlib-0.7.3.tar.gz (31 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting fastapi>=0.95.2 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached fastapi-0.115.5-py3-none-any.whl.metadata (27 kB)
Collecting uvicorn>=0.18.3 (from uvicorn[standard]>=0.18.3->chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached uvicorn-0.32.1-py3-none-any.whl.metadata (6.6 kB)
Requirement already satisfied: numpy>=1.22.5 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from chromadb<0.5.0,>=0.4.0->seagoat) (2.1.3)
Collecting posthog>=2.4.0 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached posthog-3.7.2-py2.py3-none-any.whl.metadata (2.0 kB)
Requirement already satisfied: typing-extensions>=4.5.0 in c:\users\slach\scoop\apps\python\current\lib\site-packages (from chromadb<0.5.0,>=0.4.0->seagoat) (4.12.2)
INFO: pip is looking at multiple versions of chromadb to determine which version is compatible with other requirements. This could take a while.
Collecting chromadb<0.5.0,>=0.4.0 (from seagoat)
  Using cached chromadb-0.4.23-py3-none-any.whl.metadata (7.3 kB)
  Using cached chromadb-0.4.22-py3-none-any.whl.metadata (7.3 kB)
  Using cached chromadb-0.4.21-py3-none-any.whl.metadata (7.3 kB)
  Using cached chromadb-0.4.20-py3-none-any.whl.metadata (7.3 kB)
  Using cached chromadb-0.4.19-py3-none-any.whl.metadata (7.3 kB)
  Using cached chromadb-0.4.18-py3-none-any.whl.metadata (7.4 kB)
  Using cached chromadb-0.4.17-py3-none-any.whl.metadata (7.3 kB)
INFO: pip is still looking at multiple versions of chromadb to determine which version is compatible with other requirements. This could take a while.
  Using cached chromadb-0.4.16-py3-none-any.whl.metadata (7.3 kB)
  Using cached chromadb-0.4.15-py3-none-any.whl.metadata (7.2 kB)
  Using cached chromadb-0.4.14-py3-none-any.whl.metadata (7.0 kB)
  Using cached chromadb-0.4.13-py3-none-any.whl.metadata (7.0 kB)
  Using cached chromadb-0.4.12-py3-none-any.whl.metadata (7.0 kB)
Collecting pydantic<2.0,>=1.9 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached pydantic-1.10.19-py3-none-any.whl.metadata (152 kB)
Collecting fastapi<0.100.0,>=0.95.2 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached fastapi-0.99.1-py3-none-any.whl.metadata (23 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
Collecting chromadb<0.5.0,>=0.4.0 (from seagoat)
  Using cached chromadb-0.4.11-py3-none-any.whl.metadata (7.0 kB)
  Using cached chromadb-0.4.10-py3-none-any.whl.metadata (7.0 kB)
  Using cached chromadb-0.4.9-py3-none-any.whl.metadata (7.0 kB)
Collecting chroma-hnswlib==0.7.2 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached chroma-hnswlib-0.7.2.tar.gz (31 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting chromadb<0.5.0,>=0.4.0 (from seagoat)
  Using cached chromadb-0.4.8-py3-none-any.whl.metadata (6.9 kB)
  Using cached chromadb-0.4.7-py3-none-any.whl.metadata (6.9 kB)
  Using cached chromadb-0.4.6-py3-none-any.whl.metadata (6.8 kB)
  Using cached chromadb-0.4.5-py3-none-any.whl.metadata (6.8 kB)
  Using cached chromadb-0.4.4-py3-none-any.whl.metadata (6.8 kB)
  Using cached chromadb-0.4.3-py3-none-any.whl.metadata (6.9 kB)
Collecting pandas>=1.3 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached pandas-2.2.3-cp313-cp313-win_amd64.whl.metadata (19 kB)
Collecting chroma-hnswlib==0.7.1 (from chromadb<0.5.0,>=0.4.0->seagoat)
  Using cached chroma-hnswlib-0.7.1.tar.gz (30 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting chromadb<0.5.0,>=0.4.0 (from seagoat)
  Using cached chromadb-0.4.2-py3-none-any.whl.metadata (6.9 kB)
  Using cached chromadb-0.4.1-py3-none-any.whl.metadata (6.9 kB)
  Using cached chromadb-0.4.0-py3-none-any.whl.metadata (6.9 kB)
Collecting seagoat
  Using cached seagoat-0.36.1-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.9-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.8-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.7-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.6-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.5-py3-none-any.whl.metadata (9.7 kB)
Collecting flask<3.0.0,>=2.3.2 (from seagoat)
  Using cached flask-2.3.3-py3-none-any.whl.metadata (3.6 kB)
Collecting seagoat
  Using cached seagoat-0.35.4-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.3-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.2-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.1-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.35.0-py3-none-any.whl.metadata (9.7 kB)
  Using cached seagoat-0.34.0-py3-none-any.whl.metadata (9.5 kB)
Collecting ripgrepy<3.0.0,>=2.0.0 (from seagoat)
  Using cached ripgrepy-2.0.0.tar.gz (19 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting seagoat
  Using cached seagoat-0.33.0-py3-none-any.whl.metadata (8.7 kB)
  Using cached seagoat-0.32.2-py3-none-any.whl.metadata (8.2 kB)
  Using cached seagoat-0.32.1-py3-none-any.whl.metadata (8.2 kB)
  Using cached seagoat-0.32.0-py3-none-any.whl.metadata (8.2 kB)
  Using cached seagoat-0.31.0-py3-none-any.whl.metadata (8.2 kB)
  Using cached seagoat-0.30.2-py3-none-any.whl.metadata (8.0 kB)
  Using cached seagoat-0.30.1-py3-none-any.whl.metadata (8.0 kB)
  Using cached seagoat-0.30.0-py3-none-any.whl.metadata (8.0 kB)
  Using cached seagoat-0.29.3-py3-none-any.whl.metadata (7.7 kB)
  Using cached seagoat-0.29.2-py3-none-any.whl.metadata (7.7 kB)
  Using cached seagoat-0.29.1-py3-none-any.whl.metadata (7.7 kB)
  Using cached seagoat-0.29.0-py3-none-any.whl.metadata (7.0 kB)
  Using cached seagoat-0.28.0-py3-none-any.whl.metadata (7.0 kB)
  Using cached seagoat-0.27.2-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.27.1-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.27.0-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.26.0-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.25.1-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.25.0-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.24.0-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.6-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.5-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.4-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.3-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.2-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.1-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.23.0-py3-none-any.whl.metadata (6.3 kB)
  Using cached seagoat-0.22.1-py3-none-any.whl.metadata (6.0 kB)
  Using cached seagoat-0.22.0-py3-none-any.whl.metadata (6.0 kB)
  Using cached seagoat-0.21.0-py3-none-any.whl.metadata (6.0 kB)
  Using cached seagoat-0.20.2-py3-none-any.whl.metadata (6.0 kB)
  Using cached seagoat-0.20.1-py3-none-any.whl.metadata (6.0 kB)
  Using cached seagoat-0.20.0-py3-none-any.whl.metadata (3.7 kB)
  Using cached seagoat-0.19.5-py3-none-any.whl.metadata (3.7 kB)
  Using cached seagoat-0.19.4-py3-none-any.whl.metadata (3.7 kB)
  Using cached seagoat-0.19.3-py3-none-any.whl.metadata (3.7 kB)
  Using cached seagoat-0.19.2-py3-none-any.whl.metadata (3.7 kB)
  Using cached seagoat-0.19.1-py3-none-any.whl.metadata (3.6 kB)
  Using cached seagoat-0.19.0-py3-none-any.whl.metadata (3.6 kB)
  Using cached seagoat-0.18.0-py3-none-any.whl.metadata (3.2 kB)
  Using cached seagoat-0.17.2-py3-none-any.whl.metadata (3.2 kB)
  Using cached seagoat-0.17.1-py3-none-any.whl.metadata (3.2 kB)
  Using cached seagoat-0.17.0-py3-none-any.whl.metadata (3.2 kB)
  Using cached seagoat-0.16.2-py3-none-any.whl.metadata (3.2 kB)
  Using cached seagoat-0.16.1-py3-none-any.whl.metadata (3.2 kB)
  Using cached seagoat-0.16.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.15.2-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.15.1-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.15.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.14.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.13.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.12.5-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.12.4-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.12.3-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.12.2-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.12.1-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.12.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.11.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.6-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.5-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.4-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.3-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.2-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.1-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.10.0-py3-none-any.whl.metadata (3.1 kB)
  Using cached seagoat-0.9.3-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.9.2-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.9.1-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.9.0-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.8.9-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.8.8-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.8.0-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.7.3-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.7.2-py3-none-any.whl.metadata (2.9 kB)
Collecting chromadb<0.4.0,>=0.3.26 (from seagoat)
  Using cached chromadb-0.3.29-py3-none-any.whl.metadata (6.9 kB)
Collecting hnswlib>=0.7 (from chromadb<0.4.0,>=0.3.26->seagoat)
  Using cached hnswlib-0.8.0.tar.gz (36 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting clickhouse-connect>=0.5.7 (from chromadb<0.4.0,>=0.3.26->seagoat)
  Using cached clickhouse_connect-0.8.7-cp313-cp313-win_amd64.whl.metadata (3.2 kB)
Collecting duckdb>=0.7.1 (from chromadb<0.4.0,>=0.3.26->seagoat)
  Using cached duckdb-1.1.3-cp313-cp313-win_amd64.whl.metadata (781 bytes)
Collecting fastapi==0.85.1 (from chromadb<0.4.0,>=0.3.26->seagoat)
  Using cached fastapi-0.85.1-py3-none-any.whl.metadata (24 kB)
Collecting chromadb<0.4.0,>=0.3.26 (from seagoat)
  Using cached chromadb-0.3.27-py3-none-any.whl.metadata (6.8 kB)
Collecting pydantic==1.9 (from chromadb<0.4.0,>=0.3.26->seagoat)
  Using cached pydantic-1.9.0-py3-none-any.whl.metadata (121 kB)
Collecting chromadb<0.4.0,>=0.3.26 (from seagoat)
  Using cached chromadb-0.3.26-py3-none-any.whl.metadata (6.8 kB)
Collecting seagoat
  Using cached seagoat-0.7.1-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.7.0-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.6.1-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.6.0-py3-none-any.whl.metadata (2.9 kB)
  Using cached seagoat-0.5.6-py3-none-any.whl.metadata (2.0 kB)
  Using cached seagoat-0.5.5-py3-none-any.whl.metadata (2.0 kB)
  Using cached seagoat-0.5.4-py3-none-any.whl.metadata (2.0 kB)
  Using cached seagoat-0.2.1-py3-none-any.whl.metadata (2.0 kB)
  Using cached seagoat-0.2.0-py3-none-any.whl.metadata (1.6 kB)
  Using cached seagoat-0.1.2-py3-none-any.whl.metadata (1.6 kB)
  Using cached seagoat-0.1.1-py3-none-any.whl.metadata (1.6 kB)
  Using cached seagoat-0.1.0-py3-none-any.whl.metadata (1.6 kB)
ERROR: Cannot install seagoat because these package versions have conflicting dependencies.

The conflict is caused by:
    chromadb 0.3.29 depends on pulsar-client>=3.1.0
    chromadb 0.3.27 depends on pulsar-client>=3.1.0
    chromadb 0.3.26 depends on pulsar-client>=3.1.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip to attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed up for grabs
Projects
None yet
Development

No branches or pull requests

4 participants