diff --git a/setup.py b/setup.py index 837df874..c6fc14f9 100644 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ INSTALL_REQUIRES = [ "requests>=2.7,<2.8", "semantic_version>=2.4.2,<2.5", "psutil>=3.2.1,<3.3", - "Click>=5.1,<5.2", + "Click>=6.2,<6.3", "awesome-slugify>=1.6.5,<1.7" ] @@ -59,7 +59,7 @@ EXTRA_REQUIRES = dict( # Dependencies for developing OctoPrint plugins plugins=[ - "cookiecutter" + "cookiecutter>=1.4,<1.5" ] ) diff --git a/src/octoprint/cli/dev.py b/src/octoprint/cli/dev.py index 1f383d11..7c5b126b 100644 --- a/src/octoprint/cli/dev.py +++ b/src/octoprint/cli/dev.py @@ -68,6 +68,12 @@ class OctoPrintDevelCommands(click.MultiCommand): except ImportError: return None + try: + # we depend on Cookiecutter >= 1.4 + from cookiecutter.prompt import StrictEnvironment + except ImportError: + return None + import contextlib @contextlib.contextmanager @@ -100,10 +106,9 @@ class OctoPrintDevelCommands(click.MultiCommand): original_prompt_for_config = cookiecutter.main.prompt_for_config def custom_prompt_for_config(context, no_input=False): - import cookiecutter.prompt + cookiecutter_dict = dict() - cookiecutter_dict = {} - env = cookiecutter.prompt.Environment() + env = StrictEnvironment() for key, raw in context['cookiecutter'].items(): if key in options: