Skip to content

Commit 1bc4c49

Browse files
VinciGit00claude
andcommitted
Merge main into pre/beta
Resolve conflicts in CHANGELOG.md and pyproject.toml by keeping main's version. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 parents 35ec272 + af1229e commit 1bc4c49

19 files changed

Lines changed: 783 additions & 524 deletions

.github/workflows/test-suite.yml

Lines changed: 6 additions & 185 deletions
Original file line numberDiff line numberDiff line change
@@ -9,205 +9,26 @@ on:
99

1010
jobs:
1111
unit-tests:
12-
name: Unit Tests (Python ${{ matrix.python-version }})
13-
runs-on: ${{ matrix.os }}
14-
15-
strategy:
16-
fail-fast: false
17-
matrix:
18-
os: ${{ github.event_name == 'pull_request' && fromJSON('["ubuntu-latest"]') || fromJSON('["ubuntu-latest", "macos-latest", "windows-latest"]') }}
19-
python-version: ['3.10', '3.12']
20-
21-
steps:
22-
- name: Checkout code
23-
uses: actions/checkout@v4
24-
25-
- name: Set up Python ${{ matrix.python-version }}
26-
uses: actions/setup-python@v5
27-
with:
28-
python-version: ${{ matrix.python-version }}
29-
30-
- name: Install uv
31-
uses: astral-sh/setup-uv@v4
32-
33-
- name: Install dependencies
34-
run: |
35-
uv sync
36-
37-
- name: Install Playwright browsers
38-
run: |
39-
uv run playwright install chromium
40-
41-
- name: Run unit tests
42-
run: |
43-
uv run pytest tests/ -m "unit or not integration" --cov --cov-report=xml --cov-report=term
44-
45-
- name: Upload coverage to Codecov
46-
uses: codecov/codecov-action@v4
47-
with:
48-
file: ./coverage.xml
49-
flags: unittests
50-
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}
51-
token: ${{ secrets.CODECOV_TOKEN }}
52-
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
53-
54-
integration-tests:
55-
name: Integration Tests
12+
name: Unit Tests
5613
runs-on: ubuntu-latest
5714

58-
strategy:
59-
fail-fast: false
60-
matrix:
61-
test-group: [smart-scraper, multi-graph, file-formats]
62-
6315
steps:
6416
- name: Checkout code
6517
uses: actions/checkout@v4
6618

6719
- name: Set up Python
6820
uses: actions/setup-python@v5
6921
with:
70-
python-version: '3.11'
22+
python-version: '3.12'
7123

7224
- name: Install uv
7325
uses: astral-sh/setup-uv@v4
7426

7527
- name: Install dependencies
76-
run: |
77-
uv sync
28+
run: uv sync
7829

7930
- name: Install Playwright browsers
80-
run: |
81-
uv run playwright install chromium
82-
83-
- name: Run integration tests
84-
env:
85-
OPENAI_APIKEY: ${{ secrets.OPENAI_APIKEY }}
86-
ANTHROPIC_APIKEY: ${{ secrets.ANTHROPIC_APIKEY }}
87-
GROQ_APIKEY: ${{ secrets.GROQ_APIKEY }}
88-
run: |
89-
uv run pytest tests/integration/ -m integration --integration -v
90-
91-
- name: Upload test results
92-
uses: actions/upload-artifact@v4
93-
if: always()
94-
with:
95-
name: integration-test-results-${{ matrix.test-group }}
96-
path: |
97-
htmlcov/
98-
benchmark_results/
99-
100-
benchmark-tests:
101-
name: Performance Benchmarks
102-
runs-on: ubuntu-latest
103-
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
104-
105-
steps:
106-
- name: Checkout code
107-
uses: actions/checkout@v4
108-
109-
- name: Set up Python
110-
uses: actions/setup-python@v5
111-
with:
112-
python-version: '3.11'
113-
114-
- name: Install uv
115-
uses: astral-sh/setup-uv@v4
116-
117-
- name: Install dependencies
118-
run: |
119-
uv sync
120-
121-
- name: Run performance benchmarks
122-
env:
123-
OPENAI_APIKEY: ${{ secrets.OPENAI_APIKEY }}
124-
run: |
125-
uv run pytest tests/ -m benchmark --benchmark -v
126-
127-
- name: Upload benchmark results
128-
uses: actions/upload-artifact@v4
129-
with:
130-
name: benchmark-results
131-
path: benchmark_results/
132-
133-
- name: Compare with baseline
134-
if: github.event_name == 'pull_request'
135-
run: |
136-
# Download baseline from main branch
137-
# Compare and comment on PR if regression detected
138-
echo "Benchmark comparison would run here"
139-
140-
code-quality:
141-
name: Code Quality Checks
142-
runs-on: ubuntu-latest
143-
if: github.event_name == 'push'
144-
145-
steps:
146-
- name: Checkout code
147-
uses: actions/checkout@v4
148-
149-
- name: Set up Python
150-
uses: actions/setup-python@v5
151-
with:
152-
python-version: '3.11'
153-
154-
- name: Install uv
155-
uses: astral-sh/setup-uv@v4
156-
157-
- name: Install dependencies
158-
run: |
159-
uv sync
160-
161-
- name: Run Ruff linting
162-
run: |
163-
uv run ruff check scrapegraphai/ tests/
164-
165-
- name: Run Black formatting check
166-
run: |
167-
uv run black --check scrapegraphai/ tests/
168-
169-
- name: Run isort check
170-
run: |
171-
uv run isort --check-only scrapegraphai/ tests/
172-
173-
- name: Run type checking with mypy
174-
run: |
175-
uv run mypy scrapegraphai/
176-
continue-on-error: true
31+
run: uv run playwright install chromium
17732

178-
test-coverage-report:
179-
name: Test Coverage Report
180-
needs: [unit-tests, integration-tests]
181-
runs-on: ubuntu-latest
182-
if: always()
183-
184-
steps:
185-
- name: Checkout code
186-
uses: actions/checkout@v4
187-
188-
- name: Download coverage artifacts
189-
uses: actions/download-artifact@v4
190-
191-
- name: Generate coverage report
192-
run: |
193-
echo "Coverage report generation would run here"
194-
195-
- name: Comment coverage on PR
196-
if: github.event_name == 'pull_request'
197-
uses: py-cov-action/python-coverage-comment-action@v3
198-
with:
199-
GITHUB_TOKEN: ${{ github.token }}
200-
201-
test-summary:
202-
name: Test Summary
203-
needs: [unit-tests, integration-tests, code-quality]
204-
runs-on: ubuntu-latest
205-
if: always()
206-
207-
steps:
208-
- name: Check test results
209-
run: |
210-
echo "All test jobs completed"
211-
echo "Unit tests: ${{ needs.unit-tests.result }}"
212-
echo "Integration tests: ${{ needs.integration-tests.result }}"
213-
echo "Code quality: ${{ needs.code-quality.result }}"
33+
- name: Run unit tests
34+
run: uv run pytest tests/ -m "unit or not integration"

CHANGELOG.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
1-
## [1.76.0-beta.1](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.75.1...v1.76.0-beta.1) (2026-04-07)
1+
## [2.0.0](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.76.0...v2.0.0) (2026-04-19)
22

33

4+
### ⚠ BREAKING CHANGES
5+
6+
* requires scrapegraph-py v2.0.0+
7+
8+
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
9+
410
### Features
511

6-
* add OpenAI Batch API support for SmartScraperMultiGraph ([#1036](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1036)) ([9d4eba1](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/9d4eba1f154953e401982da7eff85686293b9a48))
12+
* add scrapegraph-py PR [#84](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/84) SDK compatibility ([e8b2a28](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/e8b2a28f4708882ca6cedfdd979b37dda26ef6c2)), closes [#82](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/82)
13+
* align with scrapegraph-py v2 API surface from PR [#82](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/82) ([c0f5fd5](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/c0f5fd592395f7f0e54bdf7367f3aff46bb6e420))
14+
* migrate to scrapegraph-py v2 API surface ([fd23bb0](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/fd23bb0544b3bb867c34b009ed7bcecda86e3ac5)), closes [ScrapeGraphAI/scrapegraph-py#82](https://github.com/ScrapeGraphAI/scrapegraph-py/issues/82)
715

816

9-
### Bug Fixes
17+
### CI
18+
19+
* bump min Python to 3.12 and trim test suite ([5fda03f](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/5fda03fb6bd774dee4e89661dd1eaa0ef2d2c4ed))
20+
21+
## [1.76.0](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.75.1...v1.76.0) (2026-04-09)
22+
23+
24+
### Features
1025

11-
* update broken test imports to match current API ([536e5ad](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/536e5adcde179a12ec146bd8a10cbf654e0eeeaa))
26+
* add PlasmateLoader as lightweight scraping backend (no Chrome needed) ([9dd1fb5](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/9dd1fb54ed2ad08e968444cde0cd052f0c32f60a)), closes [#1055](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1055)
1227

1328

1429
### CI
1530

16-
* **release:** 1.60.0-beta.2 [skip ci] ([54d1473](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/54d147309dc7a1ce1b191c3e4feb927ee3ff4392)), closes [#1036](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1036)
17-
* **release:** 1.60.0-beta.3 [skip ci] ([637c696](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/637c696da77da1bb916a4ece03bd66fea50be47e))
1831
* reduce GitHub Actions costs by ~85% on PRs ([403080a](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/403080ad82c2097b111d3472cc0c6d4ee709c6fe))
1932

2033
## [1.75.1](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.75.0...v1.75.1) (2026-03-24)
@@ -38,20 +51,6 @@
3851

3952
* add MiniMax as a supported LLM provider ([6a2f8ec](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/6a2f8ecc7bdd271bc7da7bfec552c80f0e78f379))
4053

41-
## [1.60.0-beta.3](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.60.0-beta.2...v1.60.0-beta.3) (2026-03-15)
42-
43-
44-
### Bug Fixes
45-
46-
* update broken test imports to match current API ([536e5ad](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/536e5adcde179a12ec146bd8a10cbf654e0eeeaa))
47-
48-
## [1.60.0-beta.2](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.60.0-beta.1...v1.60.0-beta.2) (2026-02-24)
49-
50-
51-
### Features
52-
53-
* add OpenAI Batch API support for SmartScraperMultiGraph ([#1036](https://github.com/ScrapeGraphAI/Scrapegraph-ai/issues/1036)) ([9d4eba1](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/9d4eba1f154953e401982da7eff85686293b9a48))
54-
5554
## [1.73.1](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.73.0...v1.73.1) (2026-02-16)
5655

5756

@@ -1464,7 +1463,7 @@
14641463

14651464
* implement ScrapeGraph class for only web scraping automation ([612c644](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/612c644623fa6f4fe77a64a5f1a6a4d6cd5f4254))
14661465
* Implement SmartScraperMultiParseMergeFirstGraph class that scrapes a list of URLs and merge the content first and finally generates answers to a given prompt. ([3e3e1b2](https://github.com/ScrapeGraphAI/Scrapegraph-ai/commit/3e3e1b2f3ae8ed803d03b3b44b199e139baa68d4))
1467-
1466+
=======
14681467
## [1.26.7](https://github.com/ScrapeGraphAI/Scrapegraph-ai/compare/v1.26.6...v1.26.7) (2024-10-19)
14691468

14701469

@@ -3538,6 +3537,7 @@
35383537
* **release:** 1.6.1 [skip ci] ([44fbd71](https://github.com/VinciGit00/Scrapegraph-ai/commit/44fbd71742a57a4b10f22ed33781bb67aa77e58d))
35393538

35403539
## [1.6.1](https://github.com/VinciGit00/Scrapegraph-ai/compare/v1.6.0...v1.6.1) (2024-06-15)
3540+
=======
35413541

35423542

35433543
### Bug Fixes

README.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
# 🕷️ ScrapeGraphAI: You Only Scrape Once
66

7+
<p align="center">
8+
<a href="https://scrapegraphai.com">
9+
<img src="media/banner.png" alt="ScrapeGraphAI" style="width: 100%;">
10+
</a>
11+
</p>
12+
713
[English](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/README.md) | [中文](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/docs/chinese.md) | [日本語](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/docs/japanese.md)
814
| [한국어](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/docs/korean.md)
915
| [Русский](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/docs/russian.md) | [Türkçe](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/docs/turkish.md)
@@ -13,14 +19,10 @@
1319
| [Português](https://github.com/VinciGit00/Scrapegraph-ai/blob/main/docs/portuguese.md)
1420

1521
[![PyPI Downloads](https://static.pepy.tech/personalized-badge/scrapegraphai?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/scrapegraphai)
16-
[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen?style=for-the-badge)](https://github.com/pylint-dev/pylint)
17-
[![Pylint](https://img.shields.io/github/actions/workflow/status/VinciGit00/Scrapegraph-ai/code-quality.yml?label=Pylint&logo=github&style=for-the-badge)](https://github.com/VinciGit00/Scrapegraph-ai/actions/workflows/code-quality.yml)
18-
[![CodeQL](https://img.shields.io/github/actions/workflow/status/VinciGit00/Scrapegraph-ai/codeql.yml?label=CodeQL&logo=github&style=for-the-badge)](https://github.com/VinciGit00/Scrapegraph-ai/actions/workflows/codeql.yml)
22+
1923
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
2024
[![](https://dcbadge.vercel.app/api/server/gkxQDAjfeX)](https://discord.gg/gkxQDAjfeX)
2125

22-
[![API Banner](https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/docs/assets/api_banner.png)](https://scrapegraphai.com/?utm_source=github&utm_medium=readme&utm_campaign=api_banner&utm_content=api_banner_image)
23-
2426
<p align="center">
2527
<a href="https://trendshift.io/repositories/9761" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9761" alt="VinciGit00%2FScrapegraph-ai | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
2628
<p align="center">
@@ -29,11 +31,6 @@
2931

3032
Just say which information you want to extract and the library will do it for you!
3133

32-
<p align="center">
33-
<img src="https://raw.githubusercontent.com/VinciGit00/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;">
34-
</p>
35-
36-
3734
## 🚀 Integrations
3835
ScrapeGraphAI offers seamless integration with popular frameworks and tools to enhance your scraping capabilities. Whether you're building with Python or Node.js, using LLM frameworks, or working with no-code platforms, we've got you covered with our comprehensive integration options..
3936

docs/assets/scrapegraphai_logo.png

5.29 KB
Loading

0 commit comments

Comments
 (0)