fechell 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. data/Manifest +75 -0
  2. data/README.rdoc +130 -0
  3. data/Rakefile +16 -0
  4. data/fechell.gemspec +33 -0
  5. data/lib/defs/3.00.csv +1 -0
  6. data/lib/defs/5.00.csv +1 -0
  7. data/lib/defs/5.1.csv +1 -0
  8. data/lib/defs/5.2.csv +1 -0
  9. data/lib/defs/5.3.csv +1 -0
  10. data/lib/defs/6.1.csv +1 -0
  11. data/lib/defs/6.2.csv +1 -0
  12. data/lib/defs/6.3.csv +1 -0
  13. data/lib/defs/6.4.csv +1 -0
  14. data/lib/fechell/forms.rb +1285 -0
  15. data/lib/fechell.rb +353 -0
  16. data/lib/tests/f3test.rb +1035 -0
  17. data/lib/tests/satest.rb +346 -0
  18. data/lib/tests/sbtest.rb +390 -0
  19. data/lib/tests/sc1test.rb +616 -0
  20. data/lib/tests/sctest.rb +387 -0
  21. data/lib/tests/testdata/F3-3.00-32564-SC1.fec +3 -0
  22. data/lib/tests/testdata/F3-3.00-32777.fec +17 -0
  23. data/lib/tests/testdata/F3-3.00-32909-SC.fec +3 -0
  24. data/lib/tests/testdata/F3-3.00-32933-SB.fec +3 -0
  25. data/lib/tests/testdata/F3-3.00-32933.fec +658 -0
  26. data/lib/tests/testdata/F3-5.00-97348.fec +410 -0
  27. data/lib/tests/testdata/F3-5.00-97424-SB.fec +3 -0
  28. data/lib/tests/testdata/F3-5.00-97424-SC.fec +3 -0
  29. data/lib/tests/testdata/F3-5.00-97424.fec +12 -0
  30. data/lib/tests/testdata/F3-5.00-97986-SC1.fec +3 -0
  31. data/lib/tests/testdata/F3-5.1-116177-SC1.fec +3 -0
  32. data/lib/tests/testdata/F3-5.1-116437-SC2.fec +370 -0
  33. data/lib/tests/testdata/F3-5.1-126642.fec +448 -0
  34. data/lib/tests/testdata/F3-5.1-126655-SB.fec +3 -0
  35. data/lib/tests/testdata/F3-5.1-126655-SC.fec +3 -0
  36. data/lib/tests/testdata/F3-5.1-126655.fec +70 -0
  37. data/lib/tests/testdata/F3-5.2-170434.fec +298 -0
  38. data/lib/tests/testdata/F3-5.2-170443.fec +5 -0
  39. data/lib/tests/testdata/F3-5.2-170775-SC.fec +3 -0
  40. data/lib/tests/testdata/F3-5.2-170890-SC.fec +3 -0
  41. data/lib/tests/testdata/F3-5.2-170890.fec +21 -0
  42. data/lib/tests/testdata/F3-5.2-171146-SC1.fec +3 -0
  43. data/lib/tests/testdata/F3-5.2-171146.fec +490 -0
  44. data/lib/tests/testdata/F3-5.3-210119-SB.fec +8 -0
  45. data/lib/tests/testdata/F3-5.3-210119.fec +86 -0
  46. data/lib/tests/testdata/F3-5.3-210142-SC1.fec +3 -0
  47. data/lib/tests/testdata/F3-5.3-210142.fec +414 -0
  48. data/lib/tests/testdata/F3-5.3-210250.fec +584 -0
  49. data/lib/tests/testdata/F3-5.3-212438-SC.fec +3 -0
  50. data/lib/tests/testdata/F3-6.1-331453-SB.fec +3 -0
  51. data/lib/tests/testdata/F3-6.1-331453.fec +414 -0
  52. data/lib/tests/testdata/F3-6.1-332530-SC.fec +4 -0
  53. data/lib/tests/testdata/F3-6.1-332675.fec +1140 -0
  54. data/lib/tests/testdata/F3-6.1-333405-SC1.fec +3 -0
  55. data/lib/tests/testdata/F3-6.1-333405.fec +199 -0
  56. data/lib/tests/testdata/F3-6.2-350353-SC.fec +4 -0
  57. data/lib/tests/testdata/F3-6.2-350353.fec +882 -0
  58. data/lib/tests/testdata/F3-6.2-350775-SB.fec +3 -0
  59. data/lib/tests/testdata/F3-6.2-350775.fec +406 -0
  60. data/lib/tests/testdata/F3-6.2-350844-SC1.fec +3 -0
  61. data/lib/tests/testdata/F3-6.2-350844.fec +139 -0
  62. data/lib/tests/testdata/F3-6.3-413014.fec +624 -0
  63. data/lib/tests/testdata/F3-6.3-413060-SC.fec +3 -0
  64. data/lib/tests/testdata/F3-6.3-413226-SB.fec +3 -0
  65. data/lib/tests/testdata/F3-6.3-413226.fec +219 -0
  66. data/lib/tests/testdata/F3-6.3-413284-SC1.fec +3 -0
  67. data/lib/tests/testdata/F3-6.4-420048-SC.fec +3 -0
  68. data/lib/tests/testdata/F3-6.4-420048.fec +325 -0
  69. data/lib/tests/testdata/F3-6.4-420106.fec +3 -0
  70. data/lib/tests/testdata/F3-6.4-423088-SC1.fec +3 -0
  71. data/lib/tests/testdata/F3-6.4-423088.fec +59 -0
  72. data/lib/tests/testdata/F3-6.4-424094.fec +969 -0
  73. data/lib/tests/testdata/F3-6.4-424586-SB.fec +4 -0
  74. data/lib/tests/testdata/F3-6.4-424586.fec +131 -0
  75. data/lib/tests.rb +6 -0
  76. metadata +153 -0
data/Manifest ADDED
@@ -0,0 +1,75 @@
1
+ fechell.gemspec
2
+ lib/defs/3.00.csv
3
+ lib/defs/5.00.csv
4
+ lib/defs/5.1.csv
5
+ lib/defs/5.2.csv
6
+ lib/defs/5.3.csv
7
+ lib/defs/6.1.csv
8
+ lib/defs/6.2.csv
9
+ lib/defs/6.3.csv
10
+ lib/defs/6.4.csv
11
+ lib/fechell/forms.rb
12
+ lib/fechell.rb
13
+ lib/tests/f3test.rb
14
+ lib/tests/satest.rb
15
+ lib/tests/sbtest.rb
16
+ lib/tests/sc1test.rb
17
+ lib/tests/sctest.rb
18
+ lib/tests/testdata/F3-3.00-32564-SC1.fec
19
+ lib/tests/testdata/F3-3.00-32777.fec
20
+ lib/tests/testdata/F3-3.00-32909-SC.fec
21
+ lib/tests/testdata/F3-3.00-32933-SB.fec
22
+ lib/tests/testdata/F3-3.00-32933.fec
23
+ lib/tests/testdata/F3-5.00-97348.fec
24
+ lib/tests/testdata/F3-5.00-97424-SB.fec
25
+ lib/tests/testdata/F3-5.00-97424-SC.fec
26
+ lib/tests/testdata/F3-5.00-97424.fec
27
+ lib/tests/testdata/F3-5.00-97986-SC1.fec
28
+ lib/tests/testdata/F3-5.1-116177-SC1.fec
29
+ lib/tests/testdata/F3-5.1-116437-SC2.fec
30
+ lib/tests/testdata/F3-5.1-126642.fec
31
+ lib/tests/testdata/F3-5.1-126655-SB.fec
32
+ lib/tests/testdata/F3-5.1-126655-SC.fec
33
+ lib/tests/testdata/F3-5.1-126655.fec
34
+ lib/tests/testdata/F3-5.2-170434.fec
35
+ lib/tests/testdata/F3-5.2-170443.fec
36
+ lib/tests/testdata/F3-5.2-170775-SC.fec
37
+ lib/tests/testdata/F3-5.2-170890-SC.fec
38
+ lib/tests/testdata/F3-5.2-170890.fec
39
+ lib/tests/testdata/F3-5.2-171146-SC1.fec
40
+ lib/tests/testdata/F3-5.2-171146.fec
41
+ lib/tests/testdata/F3-5.3-210119-SB.fec
42
+ lib/tests/testdata/F3-5.3-210119.fec
43
+ lib/tests/testdata/F3-5.3-210142-SC1.fec
44
+ lib/tests/testdata/F3-5.3-210142.fec
45
+ lib/tests/testdata/F3-5.3-210250.fec
46
+ lib/tests/testdata/F3-5.3-212438-SC.fec
47
+ lib/tests/testdata/F3-6.1-331453-SB.fec
48
+ lib/tests/testdata/F3-6.1-331453.fec
49
+ lib/tests/testdata/F3-6.1-332530-SC.fec
50
+ lib/tests/testdata/F3-6.1-332675.fec
51
+ lib/tests/testdata/F3-6.1-333405-SC1.fec
52
+ lib/tests/testdata/F3-6.1-333405.fec
53
+ lib/tests/testdata/F3-6.2-350353-SC.fec
54
+ lib/tests/testdata/F3-6.2-350353.fec
55
+ lib/tests/testdata/F3-6.2-350775-SB.fec
56
+ lib/tests/testdata/F3-6.2-350775.fec
57
+ lib/tests/testdata/F3-6.2-350844-SC1.fec
58
+ lib/tests/testdata/F3-6.2-350844.fec
59
+ lib/tests/testdata/F3-6.3-413014.fec
60
+ lib/tests/testdata/F3-6.3-413060-SC.fec
61
+ lib/tests/testdata/F3-6.3-413226-SB.fec
62
+ lib/tests/testdata/F3-6.3-413226.fec
63
+ lib/tests/testdata/F3-6.3-413284-SC1.fec
64
+ lib/tests/testdata/F3-6.4-420048-SC.fec
65
+ lib/tests/testdata/F3-6.4-420048.fec
66
+ lib/tests/testdata/F3-6.4-420106.fec
67
+ lib/tests/testdata/F3-6.4-423088-SC1.fec
68
+ lib/tests/testdata/F3-6.4-423088.fec
69
+ lib/tests/testdata/F3-6.4-424094.fec
70
+ lib/tests/testdata/F3-6.4-424586-SB.fec
71
+ lib/tests/testdata/F3-6.4-424586.fec
72
+ lib/tests.rb
73
+ Manifest
74
+ Rakefile
75
+ README.rdoc
data/README.rdoc ADDED
@@ -0,0 +1,130 @@
1
+ = FECHell
2
+
3
+ Parsing a loading electronically filed fundraising reports from the Federal Election Commission. FECHell uses format definition files from Watchdog.net (http://watchdog.net/data/crawl/fec/electronic/headers/).
4
+
5
+ == Install
6
+
7
+ sudo gem install offensivepolitics-fechell
8
+
9
+ == Usage
10
+
11
+ require 'rubygems'
12
+ require 'fechell'
13
+ require 'fechell/forms.rb'
14
+ require 'open-uri'
15
+
16
+ # convenience function to download a file from a URL and save it locally
17
+
18
+ def savefile(filename,url)
19
+ File.open(filename,"w") do |file|
20
+ file.puts open(url).read
21
+ end
22
+ end
23
+
24
+ h = FECHell.new
25
+
26
+ # Grab the year-end fundraising reports by candidates for the 5th district of Virginia. This race was incredibly close and decided by less than 800 votes.
27
+
28
+ # fetch Goode for Congress F3, Year End 2008
29
+ savefile("goode.fec","http://query.nictusa.com/dcdev/posted/392684.fec")
30
+
31
+ # fetch Perriello for Congress F3, Year end 2008
32
+ savefile('perriello.fec',"http://query.nictusa.com/dcdev/posted/401630.fec")
33
+
34
+ # extract the financial summary of each campaign. we want total receipts this period and cycle to date, total disbursements this period and cycle to date,
35
+ # and the cash position at the beginning and end of this reporting period
36
+ # note we're using the new FECForm.form_for function that takes any version FECHell parameter hash and returns a full ruby object
37
+
38
+ ['goode.fec','perriello.fec'].each do |filename|
39
+ fec_version, original_form_type, form_type, values = h.header_lines(filrname)
40
+ next unless form_type == "F3" && fec_version.to_i >= 3
41
+
42
+ f = FECForm.schedule_for(form_type, fec_version, values)
43
+ puts "For: #{}"
44
+ puts "Total receipts this period: #{values['Column A 24. Total Receipts this Period']}"
45
+ puts "Total receipts cycle-to-date: #{values['Column B 16. Total Receipts']}"
46
+ puts "Total disbursements this period: #{values['Column A 26. Total Disbursements this Period']}"
47
+ puts "Total disbursements cycle-to-date: #{values['Column B 22. Total Disbursements']}"
48
+ puts "Cash-on-hand beginning of period: #{values['Column A 23. Cash Beginning Reporting Period']}"
49
+ puts "Cash-on-hand end of period: #{values['Column A 27. Cash on hand at Close Period']}"
50
+
51
+
52
+ h.process(filename) do |v|
53
+ schedule = v[0]
54
+ values = v[1]
55
+ next if schedule != 'F3'
56
+ form = FECForm.form_for(form_type)
57
+ puts "For '#{values['COMMITTEE NAME']}'"
58
+
59
+
60
+ puts "Total receipts this period: #{values['Column A 24. Total Receipts this Period']}"
61
+ puts "Total receipts cycle-to-date: #{values['Column B 16. Total Receipts']}"
62
+ puts "Total disbursements this period: #{values['Column A 26. Total Disbursements this Period']}"
63
+ puts "Total disbursements cycle-to-date: #{values['Column B 22. Total Disbursements']}"
64
+ puts "Cash-on-hand beginning of period: #{values['Column A 23. Cash Beginning Reporting Period']}"
65
+ puts "Cash-on-hand end of period: #{values['Column A 27. Cash on hand at Close Period']}"
66
+ puts "\n"
67
+ end
68
+ end
69
+
70
+ # From this output we see that Rep Goode outspent Perriello by more than a million dollars, but still lost his seat by 727 votes.
71
+
72
+ puts "==="
73
+
74
+ # fetch HuckPac F3X, Post General, 2008
75
+ savefile('huckpac.fec','http://query.nictusa.com/dcdev/posted/407479.fec')
76
+ # extract disbursements (schedule B) made this period by HuckPAC with the expenditure purpose(key="EXPENDITURE PURPOPOSE DESCRIPTION") of "Payroll"
77
+ puts "TO,DATE,AMOUNT"
78
+ h.process("huckpac.fec") do |v|
79
+ schedule = v[0]
80
+ values = v[1]
81
+
82
+ next if schedule != 'SB'
83
+
84
+ next if values['EXPENDITURE PURPOSE DESCRIP'] != 'Payroll'
85
+
86
+ puts "#{values['PAYEE FIRST NAME']} #{values['PAYEE LAST NAME']},#{values['EXPENDITURE DATE']},#{values['EXPENDITURE AMOUNT']}"
87
+
88
+ end
89
+
90
+ # From this we can see that HuckPAC keeps 5 full-time people on staff, including his daughter Sarah.
91
+
92
+
93
+ == Changes
94
+ 0.1.9
95
+ Massive speedup in form-type detection
96
+ Dozens of changes to definition files
97
+ Several bug-fixes for early format 5.0 files
98
+ Initial support for V3.0 files (circa early 2000)
99
+ Added FEC version-independent Form classes that can transform a FECHell hash into an actual class
100
+ Added monolithic unit test for every file version for the following schedules / forms: F3, SA, SB, SC, SC1
101
+
102
+ 0.1.8
103
+ Prepended "Column A" or "Column B" to forms F3,F3P,F3X,F3Z for all FEC DEF files to accommodate duplicate key names.
104
+ Added HDR records to all the FEC DEF files
105
+ Updated schedule identifier to allow HDR (header) lines to pass through system
106
+
107
+ 0.1.7
108
+ Added support for the FEC header line (schedule=HDR) to format files 5.0-6.4
109
+
110
+ 0.1.6
111
+ Fixed version numbers in FECHell::Versions
112
+
113
+ 0.1.5
114
+ Fixed optional 'options' parameter to FECHell::process() call
115
+
116
+ 0.1.4
117
+ Added support for FEC file 6.4
118
+
119
+ 0.1.3
120
+ Removed extra files from distribution.
121
+
122
+ 0.1.2
123
+ Added fastercsv gem as an install dependency
124
+
125
+ 0.1.1
126
+ Added support for version 6.3 FEC files
127
+
128
+ == Todo
129
+ Add unit tests for Schedule C v2 (SC2)
130
+ Add Form class definition for missing form types (F1,F2,F3X,F3P)
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('fechell', '0.1.9') do |p|
6
+ p.description = "Parse electronically filed FEC reports."
7
+ p.url = "http://offensivepolitics.net/fechell"
8
+ p.author = "Jason Holt"
9
+ p.email = "jjh@offensivepolitics.net"
10
+ p.ignore_pattern = ["tmp/*", "script/*", "./Manife*","pkg/*", "doc/*"]
11
+ p.development_dependencies = []
12
+ p.rdoc_pattern = ['README.rdoc']
13
+ p.runtime_dependencies = ['fastercsv']
14
+ end
15
+
16
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
data/fechell.gemspec ADDED
@@ -0,0 +1,33 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{fechell}
5
+ s.version = "0.1.9"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Jason Holt"]
9
+ s.date = %q{2010-03-22}
10
+ s.description = %q{Parse electronically filed FEC reports.}
11
+ s.email = %q{jjh@offensivepolitics.net}
12
+ s.extra_rdoc_files = ["README.rdoc"]
13
+ s.files = ["fechell.gemspec", "lib/defs/3.00.csv", "lib/defs/5.00.csv", "lib/defs/5.1.csv", "lib/defs/5.2.csv", "lib/defs/5.3.csv", "lib/defs/6.1.csv", "lib/defs/6.2.csv", "lib/defs/6.3.csv", "lib/defs/6.4.csv", "lib/fechell/forms.rb", "lib/fechell.rb", "lib/tests/f3test.rb", "lib/tests/satest.rb", "lib/tests/sbtest.rb", "lib/tests/sc1test.rb", "lib/tests/sctest.rb", "lib/tests/testdata/F3-3.00-32564-SC1.fec", "lib/tests/testdata/F3-3.00-32777.fec", "lib/tests/testdata/F3-3.00-32909-SC.fec", "lib/tests/testdata/F3-3.00-32933-SB.fec", "lib/tests/testdata/F3-3.00-32933.fec", "lib/tests/testdata/F3-5.00-97348.fec", "lib/tests/testdata/F3-5.00-97424-SB.fec", "lib/tests/testdata/F3-5.00-97424-SC.fec", "lib/tests/testdata/F3-5.00-97424.fec", "lib/tests/testdata/F3-5.00-97986-SC1.fec", "lib/tests/testdata/F3-5.1-116177-SC1.fec", "lib/tests/testdata/F3-5.1-116437-SC2.fec", "lib/tests/testdata/F3-5.1-126642.fec", "lib/tests/testdata/F3-5.1-126655-SB.fec", "lib/tests/testdata/F3-5.1-126655-SC.fec", "lib/tests/testdata/F3-5.1-126655.fec", "lib/tests/testdata/F3-5.2-170434.fec", "lib/tests/testdata/F3-5.2-170443.fec", "lib/tests/testdata/F3-5.2-170775-SC.fec", "lib/tests/testdata/F3-5.2-170890-SC.fec", "lib/tests/testdata/F3-5.2-170890.fec", "lib/tests/testdata/F3-5.2-171146-SC1.fec", "lib/tests/testdata/F3-5.2-171146.fec", "lib/tests/testdata/F3-5.3-210119-SB.fec", "lib/tests/testdata/F3-5.3-210119.fec", "lib/tests/testdata/F3-5.3-210142-SC1.fec", "lib/tests/testdata/F3-5.3-210142.fec", "lib/tests/testdata/F3-5.3-210250.fec", "lib/tests/testdata/F3-5.3-212438-SC.fec", "lib/tests/testdata/F3-6.1-331453-SB.fec", "lib/tests/testdata/F3-6.1-331453.fec", "lib/tests/testdata/F3-6.1-332530-SC.fec", "lib/tests/testdata/F3-6.1-332675.fec", "lib/tests/testdata/F3-6.1-333405-SC1.fec", "lib/tests/testdata/F3-6.1-333405.fec", "lib/tests/testdata/F3-6.2-350353-SC.fec", "lib/tests/testdata/F3-6.2-350353.fec", "lib/tests/testdata/F3-6.2-350775-SB.fec", "lib/tests/testdata/F3-6.2-350775.fec", "lib/tests/testdata/F3-6.2-350844-SC1.fec", "lib/tests/testdata/F3-6.2-350844.fec", "lib/tests/testdata/F3-6.3-413014.fec", "lib/tests/testdata/F3-6.3-413060-SC.fec", "lib/tests/testdata/F3-6.3-413226-SB.fec", "lib/tests/testdata/F3-6.3-413226.fec", "lib/tests/testdata/F3-6.3-413284-SC1.fec", "lib/tests/testdata/F3-6.4-420048-SC.fec", "lib/tests/testdata/F3-6.4-420048.fec", "lib/tests/testdata/F3-6.4-420106.fec", "lib/tests/testdata/F3-6.4-423088-SC1.fec", "lib/tests/testdata/F3-6.4-423088.fec", "lib/tests/testdata/F3-6.4-424094.fec", "lib/tests/testdata/F3-6.4-424586-SB.fec", "lib/tests/testdata/F3-6.4-424586.fec", "lib/tests.rb", "Manifest", "Rakefile", "README.rdoc"]
14
+ s.homepage = %q{http://offensivepolitics.net/fechell}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Fechell", "--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{fechell}
18
+ s.rubygems_version = %q{1.3.6}
19
+ s.summary = %q{Parse electronically filed FEC reports.}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
27
+ else
28
+ s.add_dependency(%q<fastercsv>, [">= 0"])
29
+ end
30
+ else
31
+ s.add_dependency(%q<fastercsv>, [">= 0"])
32
+ end
33
+ end
data/lib/defs/3.00.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/5.00.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/5.1.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/5.2.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/5.3.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/6.1.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/6.2.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/6.3.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number
data/lib/defs/6.4.csv ADDED
@@ -0,0 +1 @@
1
+ HDR;FORM TYPE;FEC TAG;FEC File Version;Filing Software Name;Filing Software Version;Report ID;Report Number