old_contents: """
  New version of bioconductor? This script goes through each current Bioconductor
  recipe, finds the corresponding dependencies that are also in this repo, and
  reports the [reverse toplogically sorted] set of Bioconductor packages that
  should be updated using bioconductor-scraper.py.
  
  In other words, the first items in the list should be updated and built first
  since they are those that other packages are most dependent on.
  
  Outputs strings of the format BioconductorName:recipename
  """
  
  import glob
  import yaml
  import pyaml
  import os
  import networkx as nx
  import itertools
  from conda_build.metadata import MetaData
  from conda import version
  import sys
  sys.path.insert(0, '..')
  from bioconda_utils import utils
  
  
  def bioc_name(recipe):
      """
      Returns the Bioconductor name (rather than the sanitized lowercase bioconda
      name) that can be provided to bioconda-scraper.py
      """
      return MetaData(recipe).meta['source']['fn'].split('_')[0]
  
  
  if __name__ == "__main__":
      import argparse
      ap = argparse.ArgumentParser()
      ap.add_argument('--repository', default='recipes', help='Recipes directory')
      args = ap.parse_args()
  
      recipes = list(utils.get_recipes(args.repository, 'bioconductor-*'))
      deps = itertools.chain(
          itertools.chain(*(utils.get_deps(i, build=True) for i in recipes)),
          itertools.chain(*(utils.get_deps(i, build=False) for i in recipes))
      )
  
      deps = list(filter(lambda x: x.startswith(('r-', 'bioconductor-')), deps))
  
      bioconda_deps = list(
          filter(
              lambda x: os.path.isdir(x),
              itertools.chain(*(utils.get_recipes(args.repository, i) for i in deps))
          )
      )
  
      dag, name2recipe = utils.get_dag(bioconda_deps)
  
      def version_sort(x):
          return version.VersionOrder(MetaData(x).meta['package']['version'])
  
      for name in nx.topological_sort(dag):
          recipe = sorted(name2recipe[name], key=version_sort)[-1]
          print('{0}:{1}'.format(bioc_name(recipe), name))
  
new_contents: """
  New version of bioconductor? This script goes through each current Bioconductor
  recipe, finds the corresponding dependencies that are also in this repo, and
  reports the [reverse toplogically sorted] set of Bioconductor packages that
  should be updated using bioconductor-scraper.py.
  
  In other words, the first items in the list should be updated and built first
  since they are those that other packages are most dependent on.
  
  Outputs strings of the format BioconductorName:recipename
  """
  
  import glob
  import yaml
  import pyaml
  import os
  import networkx as nx
  import itertools
  from conda_build.metadata import MetaData
  from conda import version
  import sys
  sys.path.insert(0, '..')
  from bioconda_utils import utils
  
  
  def bioc_name(recipe):
      """
      Returns the Bioconductor name (rather than the sanitized lowercase bioconda
      name) that can be provided to bioconda-scraper.py
      """
      return MetaData(recipe).meta['source']['fn'].split('_')[0]
  
  
  if __name__ == "__main__":
      import argparse
      ap = argparse.ArgumentParser()
      ap.add_argument('--recipes', default='recipes', help='Recipes directory')
      ap.add_argument('--config', default='recipes', help='Config YAML')
      args = ap.parse_args()
  
      recipes = list(utils.get_recipes(args.recipes, 'bioconductor-*'))
      deps = itertools.chain(
          itertools.chain(*(utils.get_deps(i, build=True, config=args.config) for i in recipes)),
          itertools.chain(*(utils.get_deps(i, build=False, config=args.config) for i in recipes))
      )
  
      deps = list(filter(lambda x: x.startswith(('r-', 'bioconductor-')), deps))
  
      bioconda_deps = list(
          filter(
              lambda x: os.path.isdir(x),
              itertools.chain(*(utils.get_recipes(args.recipes, i) for i in deps))
          )
      )
  
      dag, name2recipe = utils.get_dag(bioconda_deps, config=args.config)
  
      def version_sort(x):
          return version.VersionOrder(MetaData(x).meta['package']['version'])
  
      for name in nx.topological_sort(dag):
          recipe = sorted(name2recipe[name], key=version_sort)[-1]
          print('{0}:{1}'.format(bioc_name(recipe), name))
  
subject: update the update_bioconductor_packages script to build topsorted dag