diff --git a/misc/py-aider-chat/Makefile b/misc/py-aider-chat/Makefile index 03ed500e482b..455d0aa783a9 100644 --- a/misc/py-aider-chat/Makefile +++ b/misc/py-aider-chat/Makefile @@ -1,65 +1,66 @@ PORTNAME= aider_chat -DISTVERSION= 0.38.0 +DISTVERSION= 0.42.0 CATEGORIES= misc python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= aider_chat-${PORTVERSION} MAINTAINER= dch@FreeBSD.org COMMENT= AI pair programming in your terminal WWW= https://aider.chat/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE.txt BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}arrow>0:devel/py-arrow@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}backoff>0:devel/py-backoff@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}blinker>0:devel/py-blinker@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cachetools>0:devel/py-cachetools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}configargparse>0:devel/py-configargparse@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}diff-match-patch>=0:textproc/py-diff-match-patch@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}diskcache>=0:devel/py-diskcache@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}flake8>0:devel/py-flake8@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gitpython>0:devel/py-gitpython@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}greenlet>=0:devel/py-greenlet@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}grep-ast>0:textproc/py-grep-ast@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}huggingface-hub>0:misc/py-huggingface-hub@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}jsonschema>=0:devel/py-jsonschema@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}litellm>=1.24.5:misc/py-litellm@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}networkx>0:math/py-networkx@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}openai>=1.0.0:misc/py-openai@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pathspec>0:devel/py-pathspec@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}prompt-toolkit>0:devel/py-prompt-toolkit@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pypandoc>=0:textproc/py-pypandoc@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml-include>=1.2:devel/py-pyyaml-include@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rich>0:textproc/py-rich@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sounddevice>=0:audio/py-sounddevice@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}SoundFile>=0.12.1:audio/py-SoundFile@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}streamlit>0:www/py-streamlit@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tiktoken>=0.7.0:textproc/py-tiktoken@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}tokenizers>0:textproc/py-tokenizers@${PY_FLAVOR} -# missing -# playwright -# pypandoc -# google-generativeai +# missing dependencies +# playwright its a chromium browser automation library +# watchdog is pulled in by streamlit +# google-generativeai is not a popular aider dependency + USES= python shebangfix USE_PYTHON= autoplist concurrent distutils NO_ARCH= yes PORTDOCS= README.md OPTIONS_DEFINE= DOCS post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} \ ${STAGEDIR}${DOCSDIR} .include diff --git a/misc/py-aider-chat/distinfo b/misc/py-aider-chat/distinfo index e62a32e53bc8..5947b8872afc 100644 --- a/misc/py-aider-chat/distinfo +++ b/misc/py-aider-chat/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1718917111 -SHA256 (aider_chat-0.38.0.tar.gz) = 62b162bd709d4b96509cc3e3b4938a1c3c17490575d4f3694c57079680577b0c -SIZE (aider_chat-0.38.0.tar.gz) = 119449 +TIMESTAMP = 1720106776 +SHA256 (aider_chat-0.42.0.tar.gz) = e64a63befcadea2500485ed7c60f91495e31d3a33c9955bd18fe9901c0d0f31e +SIZE (aider_chat-0.42.0.tar.gz) = 124553 diff --git a/misc/py-aider-chat/files/patch-aider_scrape.py b/misc/py-aider-chat/files/patch-aider_scrape.py index 05973f8fbd0d..6ba15a5ce575 100644 --- a/misc/py-aider-chat/files/patch-aider_scrape.py +++ b/misc/py-aider-chat/files/patch-aider_scrape.py @@ -1,79 +1,80 @@ ---- aider/scrape.py.orig 2024-06-17 03:58:03 UTC +--- aider/scrape.py.orig 2024-07-04 14:23:32 UTC +++ aider/scrape.py -@@ -7,7 +7,6 @@ from bs4 import BeautifulSoup - import playwright +@@ -3,9 +3,7 @@ import sys + import re + import sys + +-import playwright import pypandoc - from bs4 import BeautifulSoup -from playwright.sync_api import sync_playwright from aider import __version__, urls from aider.dump import dump # noqa: F401 -@@ -44,14 +43,11 @@ class Scraper: +@@ -42,14 +40,10 @@ class Scraper: """ Scrape a url and turn it into readable markdown. - `url` - the URLto scrape. + `url` - the URL to scrape. """ - self.try_playwright() +- self.try_playwright() - if self.playwright_available: - content = self.scrape_with_playwright(url) - else: - content = self.scrape_with_httpx(url) + content = self.scrape_with_httpx(url) if not content: return -@@ -64,51 +60,6 @@ class Scraper: - return content +@@ -62,50 +56,8 @@ class Scraper: # Internals... -- def scrape_with_playwright(self, url): + def scrape_with_playwright(self, url): - with sync_playwright() as p: - try: - browser = p.chromium.launch() - except Exception as e: - self.playwright_available = False - self.print_error(e) - return - - page = browser.new_page() - - user_agent = page.evaluate("navigator.userAgent") - user_agent = user_agent.replace("Headless", "") - user_agent = user_agent.replace("headless", "") - user_agent += " " + aider_user_agent - - page = browser.new_page(user_agent=user_agent) - try: - page.goto(url, wait_until="networkidle", timeout=5000) - except playwright._impl._errors.TimeoutError: - pass - content = page.content() - browser.close() - - return content - - def try_playwright(self): - if self.playwright_available is not None: - return - -- with sync_playwright() as p: -- try: +- try: +- with sync_playwright() as p: - p.chromium.launch() - self.playwright_available = True -- except Exception: -- self.playwright_available = False +- except Exception: + self.playwright_available = False - - def get_playwright_instructions(self): - if self.playwright_available in (True, None): -- return + return - if self.playwright_instructions_shown: - return - - self.playwright_instructions_shown = True - return PLAYWRIGHT_INFO def scrape_with_httpx(self, url): - headers = {"User-Agent": f"Mozilla./5.0 ({aider_user_agent})"} + import httpx