In a recent Politico article, “No, the GOP is Not at War with Science”, Senator Rand Paul and Representative Lamar Smith addressed criticism of the GOP’s attempt to undermine the peer review process of the National Science Foundation and National Institute of Health’s grant proposal system.
In their article, Paul and Smith cite what they suggest are frivolous expenditures on research that do not advance national interests. I will not name the studies listed by Paul and Smith, but I do encourage people to read the original article to understand the jeers in context.
I will, however, cite one of Paul and Smith’s justifications for their argument:
Our national debt is more than $18 trillion, and the American taxpayer is hurting. If we, as a country, have decided to spend taxpayers’ hard-earned dollars on funding science and research, then we need to spend wisely. Every dollar spent by the federal government must be spent just as the typical family deals with spending decisions on car payments, child care, food purchases and housing needs.
Read more: http://www.politico.com/magazine/story/2015/01/no-the-gop-is-not-at-war-with-science-114195.html#ixzz3OxJqbYXx
In order to help researchers appeal to the financial and national scruples of the Republican controlled Congress, I have written a short script that will automatically generate a GOP-friendly NSF grant proposal description in Word.
The Python code (below) requires only the
lxml >= 2.32 packages that can be downloaded through
__author__ = 'Ryan Omizo' #Requires python-docx package #Requires lxml >=2.3.2 from docx import Document import random def guns_references(): dates = [2001, 2007, 2012, 1998, 2002, 2003, 2010, 1985, 1997] references = ['Guns, Gun. Gun. (' + str(dates[i]) + '). Guns. Guns: Guns.' for i in range(len(dates))] return references def guns_intext(): dates = [2001, 2007, 2012, 1998, 2002, 2003, 2010, 1985, 1997] in_text = ['(Guns, ' + str(dates[i]) + ')' for i in range(len(dates))] return in_text def guns_sentence(): g = 'guns' word_count = random.randrange(7,13) word_list =  for i in range(word_count): word_list.append(g) word_list.append('guns.') word_list.insert(0, 'Guns') return ' '.join(map(str, word_list)) def guns_paragraph(): sentence_count = random.randrange(7,20) sentence_list =  for i in range(sentence_count): sentence_list.append(guns_sentence()) in_text = guns_intext() s = sentence_list[random.randrange(len(sentence_list))].split() s.insert(len(s)/2, in_text[random.randrange(len(in_text))]) t = ' '.join(map(str, s)) sentence_list.insert(random.randrange(len(sentence_list)), t) return ' '.join(map(str, sentence_list)) def guns_section(): paragraph_count = random.randrange(7,15) paragraph_list =  for i in range(paragraph_count): paragraph_list.append(guns_paragraph()) return paragraph_list def guns_headings(): r = ['I.', 'II.', 'III.', 'IV.', 'V.', 'VI.'] headings = [r[i] + ' Guns' for i in range(len(r))] return headings def guns_subheadings(): r = range(4)[1:] subheadings = [str(r[i]) + '. ' + guns_paragraph() for i in range(len(r))] return subheadings document = Document() document.add_heading('Guns', 0) gh = guns_headings() for i in range(len(gh)): if i == 1: document.add_heading(gh[i]) gsh = guns_subheadings() gs1 = guns_section() for item in gsh: document.add_paragraph(item) for x in gs1: document.add_paragraph(x) elif i == 3: document.add_heading(gh[i]) gsh = guns_subheadings() gs1 = guns_section() for item in gsh: document.add_paragraph(item) for x in gs1: document.add_paragraph(x) elif i == 4: document.add_heading(gh[i]) document.add_paragraph(guns_paragraph()) recordset = [1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 3.1, 3.2, 3.3] table = document.add_table(rows=1, cols=4) hdr_cells = table.rows.cells hdr_cells.text = 'Guns and Sub-machine guns' hdr_cells.text = 'Year 1' hdr_cells.text = 'Year 2' hdr_cells.text = 'Year 3' for i in range(len(recordset)): row_cells = table.add_row().cells row_cells.text = str(recordset[i]) row_cells.text = 'Guns' row_cells.text = 'Guns' row_cells.text = 'Guns' else: document.add_heading(gh[i]) gs2 = guns_section() for g in gs2: document.add_paragraph(g) document.add_heading('References Cited') citations = guns_references() for citation in citations: document.add_paragraph(citation) document.save('republican_nsf_proposal.docx')
Running this code in your favorite Python environment or command line will output an editable Word doc such as the following: