es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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 }}"
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el valor predeterminado establecido para project_name en tu archivo cookiecutter.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 en cookiecutter.json. Por ejemplo:

    {
        "project_name": null,
        "repo_name": "{{ cookiecutter.project_name }}",
        "python_package": "{{ cookiecutter.repo_name }}",
        "kedro_version": "{{ cookiecutter.kedro_version }}"
    }
    

    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 de prompts de tu archivo cookiecutter.json en lugar de la sección de mapeos. Por ejemplo:

    {
        "prompts": {
            "project_name": {
                "default": "my_project",
                "prompt": "Ingrese el nombre del proyecto"
            }
        },
        "repo_name": "{{ cookiecutter.project_name }}",
        "python_package": "{{ cookiecutter.repo_name }}",
        "kedro_version": "{{ cookiecutter.kedro_version }}"
    }
    

    Con esta configuración, se le solicitará al usuario que ingrese un valor para project_name a menos que proporcione uno como argumento al ejecutar kedro new. Si no proporcionan un valor, se utilizará el valor predeterminado “my_project”.

Comments are closed.