in python/rpdk/java/utils.py [0:0]
def validate_namespace(default):
pattern = r"^[_a-z][_a-z0-9]+$"
def _validate_namespace(value):
if not value:
return default
if value.lower() != value:
raise WizardValidationError("Package names must be all lower case")
namespace = value.split(".")
for name in namespace:
if not name:
raise WizardValidationError(f"Empty segment in '{value}'")
if name in LANGUAGE_KEYWORDS:
raise WizardValidationError(f"'{name}' is a reserved keyword")
startswith = name[0]
if startswith not in string.ascii_lowercase + "_":
raise WizardValidationError(
f"Segment '{name}' must begin with a lower case letter or "
"an underscore"
)
match = re.match(pattern, name)
if not match:
raise WizardValidationError(
f"Segment '{name}' should match '{pattern}'"
)
return tuple(namespace)
return _validate_namespace