From 278ac91a4d68da333a6ed74a2c75b3ec9db8bd19 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sat, 22 Jul 2023 11:42:46 -0700 Subject: [PATCH] datasette install -e option, closes #2106 --- datasette/cli.py | 12 ++++++++++-- docs/cli-reference.rst | 7 ++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/datasette/cli.py b/datasette/cli.py index a6de9e6d..4ccf1963 100644 --- a/datasette/cli.py +++ b/datasette/cli.py @@ -351,13 +351,21 @@ def package( type=click.Path(exists=True), help="Install from requirements file", ) -def install(packages, upgrade, requirement): +@click.option( + "-e", + "--editable", + type=click.Path(readable=True, exists=True, dir_okay=True, file_okay=False), + help="Install a project in editable mode from this path", +) +def install(packages, upgrade, requirement, editable): """Install plugins and packages from PyPI into the same environment as Datasette""" - if not packages and not requirement: + if not packages and not requirement and not editable: raise click.UsageError("Please specify at least one package to install") args = ["pip", "install"] if upgrade: args += ["--upgrade"] + if editable: + args += ["--editable", str(editable)] if requirement: args += ["-r", requirement] args += list(packages) diff --git a/docs/cli-reference.rst b/docs/cli-reference.rst index af747ab4..c6d94303 100644 --- a/docs/cli-reference.rst +++ b/docs/cli-reference.rst @@ -350,9 +350,10 @@ Would install the `datasette-cluster-map