From 126b625004fa98d5c05b47a9f7d3338efb679d65 Mon Sep 17 00:00:00 2001 From: Oz Tiram Date: Tue, 8 Apr 2025 19:46:31 +0200 Subject: [PATCH] Local import of docopt Allows better usage of pipreqs as a library Signed-off-by: Oz Tiram --- pipreqs/pipreqs.py | 6 +++++- pyproject.toml | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pipreqs/pipreqs.py b/pipreqs/pipreqs.py index 93dcf77..404f348 100644 --- a/pipreqs/pipreqs.py +++ b/pipreqs/pipreqs.py @@ -44,7 +44,6 @@ import re import logging import ast import traceback -from docopt import docopt import requests from yarg import json2package from yarg.exceptions import HTTPError @@ -602,6 +601,11 @@ def init(args): def main(): # pragma: no cover + try: + from docopt import docopt + except (ImportError, ModuleNotFoundError): + sys.exit("Please install docopt to use the command line") + args = docopt(__doc__, version=__version__) log_level = logging.DEBUG if args["--debug"] else logging.INFO logging.basicConfig(level=log_level, format="%(levelname)s: %(message)s") diff --git a/pyproject.toml b/pyproject.toml index 9685b7d..016c20d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,6 @@ classifiers = [ requires-python = ">=3.9, <3.14" dependencies = [ "yarg>=0.1.9", - "docopt>=0.6.2", "nbconvert>=7.11.0", "ipython>=8.12.3", ] @@ -39,6 +38,10 @@ dev = [ "coverage>=7.3.2", "sphinx>=7.2.6;python_version>='3.9'", ] +cli = [ + "docopt>=0.6.2", +] + [tool.poetry.group.dev.dependencies] # for legacy usage flake8 = "^6.1.0" tox = "^4.11.3"