import urllib

from functools import wraps


def parse_namespace_repository(repository):
  parts = repository.rstrip('/').split('/', 1)
  if len(parts) < 2:
    namespace = 'library'
    repository = parts[0]
  else:
    (namespace, repository) = parts
  repository = urllib.quote_plus(repository)
  return (namespace, repository)


def parse_repository_name(f):
  @wraps(f)
  def wrapper(repository, *args, **kwargs):
    (namespace, repository) = parse_namespace_repository(repository)
    return f(namespace, repository, *args, **kwargs)
  return wrapper


def format_robot_username(parent_username, robot_shortname):
  return '%s+%s' % (parent_username, robot_shortname)