def load_publications():
    try:
        with open(app.config['PUBLICATIONS_FILE'],
                  'r') as publication_data_file:
            publications = Publications.from_yaml(publication_data_file.read())
        logging.info("Loaded publications from %s" %
                     app.config['PUBLICATIONS_FILE'])
    except IOError:
        logging.warning("Could not open %s to read publications" %
                        app.config['PUBLICATIONS_FILE'])
        publications = Publications([])
    except Exception as e:
        logging.error("There was a problem parsing publications from %s" %
                      app.config['PUBLICATIONS_FILE'],
                      exc_info=e)
        publications = Publications([])
    return publications
def publications_page():
  global publications
  if request.method == 'POST':
    publication_ids = parse_pubmed_ids(request.form['pubmed_ids'])
    logging.debug("Request to add publications: %s" % "; ".join(map(str, publication_ids)))
    new_publications = Publications.from_pubmed_ids(publication_ids)
    for publication in new_publications.values():
      publication.update_authors(users)
      logging.debug("Found %s potential authors for %s" %
                    (len(publication.most_likely_affiliated_authors()),
                     publication.pubmed_id))
    flash(message_about_new_publications(new_publications))
    publications = Publications.merge(publications, new_publications)
    return redirect(url_for('publications_page'))
  return render_template('affiliated.html',
                        publications=publications.not_denied(),
                        users=users,
                        user_title="All affiliated publications",
                        download_link=url_for('download'))
def publications_page():
    global publications
    if request.method == 'POST':
        publication_ids = parse_pubmed_ids(request.form['pubmed_ids'])
        logging.debug("Request to add publications: %s" %
                      "; ".join(map(str, publication_ids)))
        new_publications = Publications.from_pubmed_ids(publication_ids)
        for publication in new_publications.values():
            publication.update_authors(users)
            logging.debug("Found %s potential authors for %s" %
                          (len(publication.most_likely_affiliated_authors()),
                           publication.pubmed_id))
        flash(message_about_new_publications(new_publications))
        publications = Publications.merge(publications, new_publications)
        return redirect(url_for('publications_page'))
    return render_template('affiliated.html',
                           publications=publications.not_denied(),
                           users=users,
                           user_title="All affiliated publications",
                           download_link=url_for('download'))
def user_page(user_id):
    if not user_id in users:
        return render_template('affiliated.html',
                               publications=Publications(),
                               users=users,
                               user_title="Unknown user",
                               download_link='#'), 404
    return render_template(
        'affiliated.html',
        publications=publications.filter_by_user_id(user_id),
        users=users,
        user_title="Publications for %s" % users[user_id].full_name(),
        download_link=url_for('download', user_id=user_id))
def load_publications():
  try:
    with open(app.config['PUBLICATIONS_FILE'], 'r') as publication_data_file:
      publications = Publications.from_yaml(publication_data_file.read())
    logging.info("Loaded publications from %s" %
                 app.config['PUBLICATIONS_FILE'])
  except IOError:
    logging.warning("Could not open %s to read publications" %
                    app.config['PUBLICATIONS_FILE'])
    publications = Publications([])
  except Exception as e:
    logging.error("There was a problem parsing publications from %s" %
                  app.config['PUBLICATIONS_FILE'], exc_info=e)
    publications = Publications([])
  return publications
def missing():
    """Hidden URL for missing publications

  I've intentionally not publicised this feature because it makes lots of HTTP
  requests to the Sanger website and I probably only want me / administrators to
  use it on an infrequent basis.

  This endpoint lists all of the publicatons which are currently not in the
  Sanger Library's dataset"""
    library_pubmed_ids = set(LibrarySearcher.get_pubmed_ids())
    possible_pubmed_ids = set(publications.not_denied().keys())
    missing_pubmed_ids = possible_pubmed_ids.difference(library_pubmed_ids)
    missing_publications = Publications(
        [publications[pubmed_id] for pubmed_id in missing_pubmed_ids])
    return render_template('affiliated.html',
                           publications=missing_publications,
                           users=users,
                           user_title="Publications not in the Sanger Library")
    logging.basicConfig(level=logging.WARN)

  if do_exit:
    print"Exiting"
    print
    sys.exit(1)


if __name__=="__main__":

  (options, args)=main()
  check_command_line()

  try:
    with open(options.publicationsfile, 'r') as publications_input:
      publications = Publications.from_yaml(publications_input.read())
  except IOError:
    # The file is missing
    logging.info("Could not load existing publications from %s, skipping" %
                options.publicationsfile)
    publications={}
  users={}

  with open(options.usersfile, "r") as usersfile:
    users = User.from_yaml(usersfile.read())
  users_count = len(users)
  logging.info("Loaded %s users from %s" % (users_count, options.usersfile))

  pubmed_ids = set()
  logging.info("Searching pubmed for publications")
  for user in users.values():
Exemplo n.º 8
0
        logging.basicConfig(level=logging.WARN)

    if do_exit:
        print "Exiting"
        print
        sys.exit(1)


if __name__ == "__main__":

    (options, args) = main()
    check_command_line()

    try:
        with open(options.publicationsfile, 'r') as publications_input:
            publications = Publications.from_yaml(publications_input.read())
    except IOError:
        # The file is missing
        logging.info("Could not load existing publications from %s, skipping" %
                     options.publicationsfile)
        publications = {}
    users = {}

    with open(options.usersfile, "r") as usersfile:
        users = User.from_yaml(usersfile.read())
    users_count = len(users)
    logging.info("Loaded %s users from %s" % (users_count, options.usersfile))

    pubmed_ids = set()
    logging.info("Searching pubmed for publications")
    for user in users.values():