diff --git a/misc/py-aider-chat/Makefile b/misc/py-aider-chat/Makefile index ddde1d5e9b0f..03ed500e482b 100644 --- a/misc/py-aider-chat/Makefile +++ b/misc/py-aider-chat/Makefile @@ -1,65 +1,65 @@ PORTNAME= aider_chat -DISTVERSION= 0.37.0 +DISTVERSION= 0.38.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 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 d5eb5dff1970..e62a32e53bc8 100644 --- a/misc/py-aider-chat/distinfo +++ b/misc/py-aider-chat/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1718226414 -SHA256 (aider_chat-0.37.0.tar.gz) = 8d5b2cfe5c4067aeaeb328acb9d5aaeb87d6b7db9ea6f8f504b9c1d085f2cbef -SIZE (aider_chat-0.37.0.tar.gz) = 119368 +TIMESTAMP = 1718917111 +SHA256 (aider_chat-0.38.0.tar.gz) = 62b162bd709d4b96509cc3e3b4938a1c3c17490575d4f3694c57079680577b0c +SIZE (aider_chat-0.38.0.tar.gz) = 119449 diff --git a/misc/py-aider-chat/files/patch-aider_scrape.py b/misc/py-aider-chat/files/patch-aider_scrape.py index 5f93628d7a07..05973f8fbd0d 100644 --- a/misc/py-aider-chat/files/patch-aider_scrape.py +++ b/misc/py-aider-chat/files/patch-aider_scrape.py @@ -1,77 +1,79 @@ ---- aider/scrape.py.orig 2024-05-13 18:19:39 UTC +--- aider/scrape.py.orig 2024-06-17 03:58:03 UTC +++ aider/scrape.py -@@ -6,7 +6,6 @@ from bs4 import BeautifulSoup - import httpx +@@ -7,7 +7,6 @@ from bs4 import BeautifulSoup + import playwright import pypandoc from bs4 import BeautifulSoup -from playwright.sync_api import sync_playwright - from aider import __version__ - -@@ -42,14 +41,11 @@ class Scraper: + from aider import __version__, urls + from aider.dump import dump # noqa: F401 +@@ -44,14 +43,11 @@ class Scraper: """ Scrape a url and turn it into readable markdown. - `url` - the URLto scrape. + `url` - the URL to scrape. """ 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 -@@ -62,49 +58,6 @@ class Scraper: +@@ -64,51 +60,6 @@ class Scraper: return content # Internals... - 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) -- page.goto(url) +- 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: - p.chromium.launch() - self.playwright_available = True - except Exception: - self.playwright_available = False - - def get_playwright_instructions(self): - if self.playwright_available in (True, None): - 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})"} - try: