kedro
kedro copied to clipboard
Kedro new starter CLI : user_input.lower()
Description
I use kedro starter CLI configured by prompt.yml with regex check and I think I found one issue : the user inputs are systematically transformed to lowercase : https://github.com/kedro-org/kedro/blob/main/kedro/framework/cli/starters.py#L957 The result is that I can't restrict user input to uppercase or lowercase
Context
I want to restrict user input to uppercase
Steps to Reproduce
- create a cookiecutter template for kedro (regarding your need)
- create your cookiecutter.json with
project_name
as unique prompt - create your prompt.yml with an entry for
project_name
- set the
regex_validator
field to"[A-Z_]+"
- start
kedro new --starter=./my_starter
and answerMY_PROJECT
forproject_name
prompt - It will fail due to the
user_input.lower()
inkedro/framework/cli/starters.py
line 957
Expected Result
The regex and the input must match
Actual Result
The user input is refused
Your Environment
Python : 3.9.13 Kedro : 0.19.3 OS : Linux (distribution and kernel version confidential)
I think that is by design that we don't allow upper case. As I understand this is the convention for Python community.
https://gist.github.com/etigui/7600441926e73c3385057718c2fdef8e
However the error may not be clear enough, curious if you are creating your own starters?
I know about python naming convention, the point is not here : the regex of prompt for project name in uppercase was just for the example. In reality I use the regex for a variable value in the project which needs to be in uppercase, your code is clear : you apply lower() method on the user input which is not correct.
@lpsedo got it, would you like to send a PR to fix this? It should be a relative simple one happy to merge this.
Sure, I will potentially make the PR this weekend
Hi @Ipsedo are you still interested in creating a PR for this?
@merelcht I would like to work on this - do I need to be assigned first or should I submit a PR directly?
Hi @parthmshah1302, thanks for helping out! You can just go ahead and create a PR when you're ready š
Hi, could I please get a status update on this? Iād like to work on it if possible.