kopia lustrzana https://github.com/simonw/datasette
Better error for --load-extensions, refs #1979
rodzic
3b88ac671e
commit
fdb4d975a1
|
@ -4,6 +4,7 @@ import click
|
||||||
from click import formatting
|
from click import formatting
|
||||||
from click.types import CompositeParamType
|
from click.types import CompositeParamType
|
||||||
from click_default_group import DefaultGroup
|
from click_default_group import DefaultGroup
|
||||||
|
import functools
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import pathlib
|
import pathlib
|
||||||
|
@ -11,6 +12,7 @@ import shutil
|
||||||
from subprocess import call
|
from subprocess import call
|
||||||
import sys
|
import sys
|
||||||
from runpy import run_module
|
from runpy import run_module
|
||||||
|
import textwrap
|
||||||
import webbrowser
|
import webbrowser
|
||||||
from .app import (
|
from .app import (
|
||||||
OBSOLETE_SETTINGS,
|
OBSOLETE_SETTINGS,
|
||||||
|
@ -126,7 +128,7 @@ class Setting(CompositeParamType):
|
||||||
|
|
||||||
|
|
||||||
def sqlite_extensions(fn):
|
def sqlite_extensions(fn):
|
||||||
return click.option(
|
fn = click.option(
|
||||||
"sqlite_extensions",
|
"sqlite_extensions",
|
||||||
"--load-extension",
|
"--load-extension",
|
||||||
type=LoadExtension(),
|
type=LoadExtension(),
|
||||||
|
@ -134,6 +136,25 @@ def sqlite_extensions(fn):
|
||||||
multiple=True,
|
multiple=True,
|
||||||
help="Path to a SQLite extension to load, and optional entrypoint",
|
help="Path to a SQLite extension to load, and optional entrypoint",
|
||||||
)(fn)
|
)(fn)
|
||||||
|
# Wrap it in a custom error handler
|
||||||
|
@functools.wraps(fn)
|
||||||
|
def wrapped(*args, **kwargs):
|
||||||
|
try:
|
||||||
|
return fn(*args, **kwargs)
|
||||||
|
except AttributeError as e:
|
||||||
|
if "enable_load_extension" in str(e):
|
||||||
|
raise click.ClickException(
|
||||||
|
textwrap.dedent(
|
||||||
|
"""
|
||||||
|
Your Python installation does not have the ability to load SQLite extensions.
|
||||||
|
|
||||||
|
More information: https://datasette.io/help/extensions
|
||||||
|
"""
|
||||||
|
).strip()
|
||||||
|
)
|
||||||
|
raise
|
||||||
|
|
||||||
|
return wrapped
|
||||||
|
|
||||||
|
|
||||||
@click.group(cls=DefaultGroup, default="serve", default_if_no_args=True)
|
@click.group(cls=DefaultGroup, default="serve", default_if_no_args=True)
|
||||||
|
|
Ładowanie…
Reference in New Issue