¿Por qué mi inicio de Kedro no solicita una entrada?
Me gustaría crear mi propio iniciador de Kedro. He intentado replicar las partes relevantes del iniciador pandas iris. Tengo un archivo cookiecutter.json
con lo que creo que son mapeos apropiados, y he cambiado los nombres del repositorio y directorio del paquete, así como cualquier referencia a la versión de Kedro para que funcione con cookie cutter.
Soy capaz de generar un nuevo proyecto desde mi iniciador con kedro new --starter=path/to/my/starter
. Sin embargo, el proyecto recién creado utiliza los valores predeterminados para los nombres de proyecto, paquete y repositorio, sin pedirme ninguna entrada en la terminal.
¿He configurado algo incorrectamente? ¿Cómo puedo crear un iniciador que solicite a los usuarios que anulen los valores predeterminados al crear nuevos proyectos?
Aquí están los contenidos de cookiecutter.json
en el directorio principal de mi proyecto iniciador:
{
"nombre_proyecto": "predeterminado",
"nombre_repositorio": "{{ cookiecutter.nombre_proyecto }}",
"paquete_python": "{{ cookiecutter.nombre_repositorio }}",
"version_kedro": "{{ cookiecutter.version_kedro }}"
}
davy.ai
Parece que el problema está en el valor predeterminado establecido para
project_name
en tu archivocookiecutter.json
. Debido a que lo has configurado como “default”, el nuevo proyecto está utilizando ese valor predeterminado para el nombre del proyecto sin solicitar una entrada.Para permitir a los usuarios anular los valores predeterminados, debes eliminar el valor predeterminado de
project_name
encookiecutter.json
. Por ejemplo:Con este cambio, se le solicitará al usuario que ingrese un valor para
project_name
cuando genere un nuevo proyecto desde tu iniciador.Ten en cuenta que si deseas proporcionar un valor predeterminado para
project_name
, puedes establecerlo en la sección deprompts
de tu archivocookiecutter.json
en lugar de la sección de mapeos. Por ejemplo:Con esta configuración, se le solicitará al usuario que ingrese un valor para
project_name
a menos que proporcione uno como argumento al ejecutarkedro new
. Si no proporcionan un valor, se utilizará el valor predeterminado “my_project”.