From fdac239fcc4a83f6a97a11df5b43657917e67190 Mon Sep 17 00:00:00 2001 From: Karim shoair Date: Sun, 14 Sep 2025 20:32:46 +0300 Subject: [PATCH] build: Move click library to be part of the fetchers extra --- pyproject.toml | 2 +- scrapling/cli.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5c708f3..53f5a4c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,13 +58,13 @@ classifiers = [ dependencies = [ "lxml>=6.0.1", "cssselect>=1.3.0", - "click>=8.2.1", "orjson>=3.11.3", "tldextract>=5.3.0", ] [project.optional-dependencies] fetchers = [ + "click>=8.2.1", "curl_cffi>=0.13.0", "playwright>=1.52.0", "rebrowser-playwright>=1.52.0", diff --git a/scrapling/cli.py b/scrapling/cli.py index 3e052ac..0b68721 100644 --- a/scrapling/cli.py +++ b/scrapling/cli.py @@ -7,7 +7,13 @@ from scrapling.core.utils import log, _CookieParser, _ParseHeaders from scrapling.core._types import List, Optional, Dict, Tuple, Any, Callable from orjson import loads as json_loads, JSONDecodeError -from click import command, option, Choice, group, argument + +try: + from click import command, option, Choice, group, argument +except ImportError: + raise ImportError( + "You need to install scrapling with any of the extras to enable Shell commands. See: https://scrapling.readthedocs.io/en/latest/#installation" + ) __OUTPUT_FILE_HELP__ = "The output file path can be an HTML file, a Markdown file of the HTML content, or the text content itself. Use file extensions (`.html`/`.md`/`.txt`) respectively." __PACKAGE_DIR__ = Path(__file__).parent