From efc6b12c65f13fc7803d2432265022c9ca3792c5 Mon Sep 17 00:00:00 2001 From: Paul Pfeister Date: Sun, 30 Jun 2024 22:49:16 -0400 Subject: [PATCH] Make torrequest optional --- pyproject.toml | 3 +++ sherlock/sherlock.py | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fafa9f8..bfbdac2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,6 +52,9 @@ torrequest = "^0.1.0" pandas = ">=1.0.0,<3.0.0" openpyxl = "^3.0.10" +[tool.poetry.extras] +tor = ["torrequest"] + [tool.poetry.group.dev.dependencies] jsonschema = "^4.0.0" diff --git a/sherlock/sherlock.py b/sherlock/sherlock.py index db8e9c2..41e0918 100644 --- a/sherlock/sherlock.py +++ b/sherlock/sherlock.py @@ -30,7 +30,6 @@ from .__init__ import ( # noqa: E402 ) from requests_futures.sessions import FuturesSession # noqa: E402 -from torrequest import TorRequest # noqa: E402 from sherlock.result import QueryStatus # noqa: E402 from sherlock.result import QueryResult # noqa: E402 from sherlock.notify import QueryNotify # noqa: E402 @@ -206,6 +205,15 @@ def sherlock( query_notify.start(username) # Create session based on request methodology if tor or unique_tor: + try: + from torrequest import TorRequest # noqa: E402 + except ImportError: + print("Important!") + print("> Dependencies for --tor and --unique-tor are now optional, and WILL BE DEPRECATED in a future release of Sherlock.") + print("> If you've installed Sherlock via pipx, you can install the dependency with `pipx install sherlock-project[tor]`.") + print("> Other packages should refer to their packager maintainer's documentation, or install separately with `pipx install torrequest`.\n") + sys.exit(query_notify.finish()) + # Requests using Tor obfuscation try: underlying_request = TorRequest()