code: def vary_name(name: Text):
      
  
      snake = re.match(r'^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$', name)
  
      if not snake:
          fail('The project name is not a valid snake-case Python variable name')
  
      camel = [x[0].upper() + x[1:] for x in name.split('_')]
  
      return {
          'project_name_snake': name,
          'project_name_camel': ''.join(camel),
          'project_name_readable': ' '.join(camel),
      }
docs: Validates the name and creates variations