From 450a42a00da7b48aa1450d692ff812f4d4781607 Mon Sep 17 00:00:00 2001 From: Vedaant Singh Date: Wed, 12 Aug 2026 07:18:17 +0100 Subject: [PATCH] chore: version bump, new release, changelog update --- CHANGELOG.md | 9 +++++++++ pyproject.toml | 2 +- server.json | 4 ++-- src/pyscrappy/__init__.py | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65cd049..56ad961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ All notable changes to PyScrappy are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). +## [1.5.3] - 2026-08-12 + +### Fixed +- `Selector.xpath()` no longer crashes on a scalar XPath like `count(...)` or `boolean(...)`; the value is returned as a single-item string result (#136). +- `MetadataExtractor` drops empty `keywords` entries produced by trailing or repeated commas, e.g. `"a, , b,"` -> `["a", "b"]` (#137). + +### Changed +- `AdaptiveStore.save()` writes the fingerprint store atomically (temp file + `os.replace`), so a crash mid-write or a concurrent write can no longer corrupt `adaptive.json` (#138). + ## [1.5.2] - 2026-08-10 ### Fixed diff --git a/pyproject.toml b/pyproject.toml index 64b36e4..0d7b00c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "pyscrappy" -version = "1.5.2" +version = "1.5.3" description = "A robust, all-in-one Python web scraping toolkit" readme = "README.md" license = "MIT" diff --git a/server.json b/server.json index b14dd18..da1eaab 100644 --- a/server.json +++ b/server.json @@ -7,13 +7,13 @@ "url": "https://github.com/mldsveda/PyScrappy", "source": "github" }, - "version": "1.5.2", + "version": "1.5.3", "packages": [ { "registryType": "pypi", "registryBaseUrl": "https://pypi.org", "identifier": "pyscrappy", - "version": "1.5.2", + "version": "1.5.3", "runtimeHint": "uvx", "transport": { "type": "stdio" diff --git a/src/pyscrappy/__init__.py b/src/pyscrappy/__init__.py index fab4d2d..958deb2 100644 --- a/src/pyscrappy/__init__.py +++ b/src/pyscrappy/__init__.py @@ -103,7 +103,7 @@ register(_cls.name, _cls) del _cls -__version__ = "1.5.2" +__version__ = "1.5.3" __all__ = [ # Core