File: C:/Users/fred/anaconda3/Lib/site-packages/spyder/plugins/projects/utils/cookie.py
# -*- coding: utf-8 -*-
#
# Copyright © Spyder Project Contributors
# Licensed under the terms of the MIT License
# (see spyder/__init__.py for details)
"""
Cookiecutter utilities.
"""
import json
import os
from cookiecutter.main import cookiecutter
def generate_cookiecutter_project(cookiecutter_path, output_path,
extra_content=None):
"""
Generate a cookicutter project programmatically.
"""
status = True
try:
result = cookiecutter(
cookiecutter_path,
output_dir=output_path,
overwrite_if_exists=True,
extra_context=extra_content,
no_input=True,
)
except Exception as err:
result = err
status = False
return status, result
def load_cookiecutter_project(project_path):
"""
Load a cookicutter options and pre-hook script.
"""
options = None
pre_gen_code = None
cookiepath = os.path.join(project_path, "cookiecutter.json")
pre_gen_path = os.path.join(project_path, "hooks", "pre_gen_project.py")
if os.path.isdir(project_path):
if os.path.isfile(cookiepath):
with open(cookiepath, 'r') as fh:
options = json.loads(fh.read())
if os.path.isfile(pre_gen_path):
with open(pre_gen_path, 'r') as fh:
pre_gen_code = fh.read()
return options, pre_gen_code