Example #1
0
def generate_old_stack_header(macro, stack_name, opt_distro=None):
    try:
        data = load_stack_manifest(stack_name, opt_distro)
    except UtilException as e:
        name = "name: %s, distro: %s" % (stack_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    packages = data.get('packages', [])
    is_unary = [stack_name] == packages

    desc = get_description(macro, data, 'stack')
    nav = get_nav(macro, stack_name, packages, distro=opt_distro)
    links = get_stack_links(macro, stack_name, data, packages, is_unary,
                            opt_distro)

    if is_unary:
        try:
            package_data = load_package_manifest(stack_name, opt_distro)
            links += get_package_links(macro, stack_name, package_data,
                                       opt_distro, None)
        except:
            pass

    return macro.formatter.rawHTML(nav) + '<br><br>' + macro.formatter.rawHTML(
        links) + desc
Example #2
0
def macro_StackReleases(macro, arg1):
  stack_name = get_unicode(macro.request, arg1)
  if not stack_name:
    return "ERROR in StackReleases. Usage: [[StackReleases(stack_name)]]"
  if '/Releases' in stack_name:
    stack_name = stack_name[:-len('/Releases')]
  try:
    data = load_stack_manifest(stack_name)
  except UtilException, e:
    return str(e)
Example #3
0
def macro_StackReleases(macro, arg1):
    stack_name = get_unicode(macro.request, arg1)
    if not stack_name:
        return "ERROR in StackReleases. Usage: [[StackReleases(stack_name)]]"
    if '/Releases' in stack_name:
        stack_name = stack_name[:-len('/Releases')]
    try:
        data = load_stack_manifest(stack_name)
    except UtilException, e:
        return str(e)
Example #4
0
def macro_StackNavi(macro, arg1):
  stack_name = get_unicode(macro.request, arg1)

  try:
    import yaml
  except:
    return 'python-yaml is not installed on the wiki. Please have an admin install on this machine'

  if not stack_name:
    return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name)]]"    
  
  try:
    data = load_stack_manifest(stack_name)
  except UtilException, e:
    return str(e)
Example #5
0
def macro_StackNavi(macro, arg1):
    stack_name = get_unicode(macro.request, arg1)

    try:
        import yaml
    except:
        return 'python-yaml is not installed on the wiki. Please have an admin install on this machine'

    if not stack_name:
        return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name)]]"

    try:
        data = load_stack_manifest(stack_name)
    except UtilException, e:
        return str(e)
Example #6
0
def macro_StackHeader(macro, arg1, arg2='ja'):
    stack_name = get_unicode(macro.request, arg1)
    lang = get_unicode(macro.request, arg2)
    if ' ' in stack_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = stack_name.split(' ')
        if len(splits) > 2:
            return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"
        stack_name, lang = splits
    if not stack_name:
        return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"

    try:
        data = load_stack_manifest(stack_name, lang)
    except UtilException, e:
        name = stack_name
        return CONTRIBUTE_TMPL % locals()
Example #7
0
def macro_StackHeader(macro, arg1, arg2='ja'):
    stack_name = get_unicode(macro.request, arg1)
    lang = get_unicode(macro.request, arg2)
    if ' ' in stack_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = stack_name.split(' ')
        if len(splits) > 2:
            return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"
        stack_name, lang = splits
    if not stack_name:
        return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"

    try:
        data = load_stack_manifest(stack_name, lang)
    except UtilException, e:
        name = stack_name
        return CONTRIBUTE_TMPL%locals()
Example #8
0
def generate_old_stack_header(macro, stack_name, opt_distro=None):
    try:
        data = load_stack_manifest(stack_name, opt_distro)
    except UtilException, e:
        name = "name: %s, distro: %s" % (stack_name, opt_distro)
        return CONTRIBUTE_TMPL%locals()
def macro_StackNaviPackageNames(macro, arg1):
    stack_name = get_unicode(macro.request, arg1)
    stack_url = None

    try:
        import yaml
    except:
        return 'python-yaml is not installed on the wiki. Please have an admin install on this machine'

    if not stack_name:
        return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name)]]"

    try:
        data = load_stack_manifest(stack_name)
    except UtilException as e:
        return str(e)

    if not data or type(data) != dict:
        return "Unable to retrieve stack data. Auto-generated documentation may need to regenerate: " + str(
            url)
    # keys
    # - manifest keys
    brief = data.get('brief', stack_name)
    authors = data.get('authors', 'unknown')
    try:
        if type(authors) != unicode:
            authors = unicode(authors, 'utf-8')
    except UnicodeDecodeError:
        authors = ''
    license = data.get('license', 'unknown')
    description = data.get('description', '')
    try:
        if type(description) != unicode:
            description = unicode(description, 'utf-8')
    except UnicodeDecodeError:
        description = ''
    depends = data.get('depends', [])
    depends_on = data.get('depends_on', [])
    review_status = data.get('review_status', 'unreviewed')
    review_notes = data.get('review_notes', '') or ''

    # set() logic is to get around temporary bug
    packages = list(set(data.get('packages', [])))
    # filter out test packages
    packages = [s for s in packages if not s.startswith('test_')]
    packages.sort()

    p = macro.formatter.paragraph
    url = macro.formatter.url
    div = macro.formatter.div
    em = macro.formatter.emphasis
    br = macro.formatter.linebreak
    strong = macro.formatter.strong
    li = macro.formatter.listitem
    ul = macro.formatter.bullet_list
    h = macro.formatter.heading
    text = macro.formatter.text
    rawHTML = macro.formatter.rawHTML

    top = strong(1) + wiki_url(macro, stack_name) + strong(0)

    parts = []
    for pkg in packages:
        parts.append(wiki_url(macro, pkg))
    if stack_name.lower() != 'sandbox':
        nav = ''
        if parts:
            nav += parts[0]
            for part in parts[1:]:
                nav += text(', ') + part
    else:
        nav = strong(1) + text(stack_name) + strong(0)

    try:
        desc = macro.formatter.heading(1, 3, id="summary")+wiki_url(macro,stack_name)+macro.formatter.heading(0, 3)+\
          p(1,id="stack-info")+rawHTML(description)+p(0)


#+ macro.formatter.div(0)

    except UnicodeDecodeError:
        desc = h(1, 2) + text("Stack Summary") + h(
            0, 2) + p(1) + text('Error retrieving stack summary') + p(0)

    #TODO: Changelist, Roadmap, Releases

    return (stack_name, packages, desc)

    #html_str = u''.join([s for s in [nav, links, desc ]])
    return desc  #+ rawHTML(nav)
Example #10
0
def macro_StackNaviPackageNames(macro, arg1):
  stack_name = get_unicode(macro.request, arg1)
  stack_url = None

  try:
    import yaml
  except:
    return 'python-yaml is not installed on the wiki. Please have an admin install on this machine'

  if not stack_name:
    return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name)]]"    

  try:
    data = load_stack_manifest(stack_name)
  except UtilException as e:
    return str(e)

  if not data or type(data) != dict:
    return "Unable to retrieve stack data. Auto-generated documentation may need to regenerate: "+str(url)
  # keys
  # - manifest keys
  brief = data.get('brief', stack_name)
  authors = data.get('authors', 'unknown')
  try:
    if type(authors) != unicode:
      authors = unicode(authors, 'utf-8')
  except UnicodeDecodeError:
    authors = ''
  license = data.get('license', 'unknown')
  description = data.get('description', '')
  try:
    if type(description) != unicode:
      description = unicode(description, 'utf-8')
  except UnicodeDecodeError:
    description = ''
  depends = data.get('depends', [])
  depends_on = data.get('depends_on', [])
  review_status = data.get('review_status', 'unreviewed')
  review_notes = data.get('review_notes', '') or ''

  # set() logic is to get around temporary bug
  packages = list(set(data.get('packages', [])))
  # filter out test packages
  packages = [s for s in packages if not s.startswith('test_')]
  packages.sort()

  p = macro.formatter.paragraph
  url = macro.formatter.url
  div = macro.formatter.div
  em = macro.formatter.emphasis
  br = macro.formatter.linebreak
  strong = macro.formatter.strong
  li = macro.formatter.listitem
  ul = macro.formatter.bullet_list
  h = macro.formatter.heading
  text = macro.formatter.text
  rawHTML = macro.formatter.rawHTML

  top = strong(1)+wiki_url(macro,stack_name)+strong(0)

  parts = []
  for pkg in packages:
    parts.append(wiki_url(macro, pkg))
  if stack_name.lower() != 'sandbox':
    nav =''
    if parts:
      nav += parts[0]
      for part in parts[1:]:
        nav += text(', ')+part
  else:
    nav = strong(1)+text(stack_name)+strong(0)
  
  try:
    desc = macro.formatter.heading(1, 3, id="summary")+wiki_url(macro,stack_name)+macro.formatter.heading(0, 3)+\
      p(1,id="stack-info")+rawHTML(description)+p(0)
#+ macro.formatter.div(0)

  except UnicodeDecodeError:
    desc = h(1, 2)+text("Stack Summary")+h(0,2)+p(1)+text('Error retrieving stack summary')+p(0)

  #TODO: Changelist, Roadmap, Releases

  return (stack_name, packages, desc)

  #html_str = u''.join([s for s in [nav, links, desc ]])
  return desc #+ rawHTML(nav)
Example #11
0
def generate_old_stack_header(macro, stack_name, opt_distro=None):
    try:
        data = load_stack_manifest(stack_name, opt_distro)
    except UtilException, e:
        name = "name: %s, distro: %s" % (stack_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()